1行に複数回存在する2つのシンボル間のパターンを削除します。

1行に複数回存在する2つのシンボル間のパターンを削除します。

次のようなファイルがいくつかあります(と呼びますfile1)。

(((1824663.AST0201.AST0202.AST0016...AST0087:0.2575,225845.AST0201.AST0202.AST0016...AST0087:0.717227):0.45328,190304.AST0201.AST0202.AST0016...AST0087:...........

AST*常に最後の項目の後の前と後の間のすべての項目を削除したいと思います。このパターンは連続して複数回発生します。ここに示されているのは正確なレプリカですが、他の行に似たものがたくさんあります。.AST*:.AST*AST*AST

私が現在やっていることは、ファイルを分割してすべてを削除してから、各行を1行にASTリンクすることです。

sed 's/:/:\n/g;s/,/,\n/g' file1 | sed 's/\.AST.*:/:/g' | sed -z 's/\n//g'

予想出力:

(((1824663:0.2575,225845:0.717227):0.45328,190304:...........

sedこれを要求するより短いコマンドがありますか?

ベストアンサー1

あなたはこれを試すことができますsed

$ sed -E 's/\.AST[^:]*//g' input_file
(((1824663:0.2575,225845:0.717227):0.45328,190304:...........

おすすめ記事