一致する行を次の行にコピーして編集しますか?

一致する行を次の行にコピーして編集しますか?

次のファイルが与えられた場合:

a foo 1
b bar 2
c foo 3
d baz 4
e bar 5

ファイルを次のように変更したいと思います。結果が次のようになるように、次の行をbar含む各行をコピーして変更します。barbar2

a foo 1
b bar 2
b bar2 2
c foo 3
d baz 4
e bar 5
e bar2 5

ベストアンサー1

Stéphaneが提案したようにp行を印刷してs置き換えると、sed結果は自動的に印刷されます。

sed '/bar/{p;s//&2/;}'  infile

おすすめ記事