次のようなファイルがいくつかあります(と呼びます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:...........