複数の文字列を含む行の末尾にテキストを追加するには?

複数の文字列を含む行の末尾にテキストを追加するには?

次のファイルがあります。

1;1471375551;joe;WO12344;
2;1471378551;frank;WO12345;1471380211
3;1471383211;frank;WO12345;1471385211
4;1471385311;frank;WO12345;
5;1471385311;joe;WO12346;1471388211

frankbashスクリプトを使用して、指定された名前(例:)と指定されたWO番号(例WO12345:)を含め、次に終わる行を見つけ、行末に;文字列を追加したいと思います。 stdoutに出力するのではなく、ファイルを直接編集したいと思います。read名前とWO番号を取得する方法を知っています。私はsedwith-iが正しいツールだと思います。どうすればいいですか?

ベストアンサー1

名前とWOが常に連続であれば簡単です。

sed  '/frank;WO12345;/s/;$/;sometext/' -i file

何らかの方法で表示される場合や必ずしも互いに隣り合う必要はない場合は、コマンドブロックを使用して両方のテストを組み合わせます。

sed  '/;frank;/{/;WO12345;/s/;$/;sometext/}' -i file

おすすめ記事