Sed:パターンを他のすべての改行文字に置き換えますか?

Sed:パターンを他のすべての改行文字に置き換えますか?

sed毎回発生するたびにパターンを置き換えるように指示する方法はありますか?それとも、少なくとも別の行ごとに? (もちろんスクリプトを使うことも可能ですが、できるかsed自分に聞いてみました。)

編集する

私が見つけた

sed -e "s/pattern/replacement/g;n"

ただし、2番目の発生ではなく、最初の発生を置き換えます。

はい

入力ファイル:

I have a pattern in each line
Also the second line has the pattern
Another pattern here
And -- you guess it -- a pattern

希望の出力:

I have a pattern in each line
Also the second line has the replacement
Another pattern here
And -- you guess it -- a replacement

ベストアンサー1

sed 's/pattern/replacement/2'

パターンを持つ各行の2番目の項目が置き換えられます。


GNUがある場合sed

sed '1~2N ; s/pattern/replacement/2'

最初の行から始まり、後ろの行1がパターンスペースに追加され、Nコマンドsは2番目のパターン発生を置き換えます。その後、sed2行下に移動し~2て繰り返します。

おすすめ記事