次の形式のテキストを置き換える方法を見つけようとしています。
input1:input2:input3
aaa:bbb:ccc
111:222:333
私は結果が次のようになりたいと思います:
input1:new-text:input3
aaa:new-text:ccc
111:new-text:333
結果が良い場合は、sed、awk、cut、または他の何かを実行できます。
ベストアンサー1
awkは、「コロンで区切られた2番目のフィールドを」に置き換える規則を考慮して、new-text
これを非常に簡単にします。
awk -F':' 'BEGIN { OFS=FS } {$2="new-text"; print} ' < input > output
-F':'
コロンを使用して各行のフィールドを区切るようにawkに指示します。
このBEGIN
セクションは出力後で行を再印刷するときに awk がコロンを再利用してフィールドを結合できるように、フィールド区切り文字を現在のフィールド区切り記号 (コロン) に変更します。
2番目の部分の前には条件がないので、各行が実際に実行されるのは、2番目のフィールドを次に置き換えてから、新しい行をnew-text
印刷することです。