BSDを使用してくださいsed。

BSDを使用してくださいsed。

BSDを使用してくださいsed

次の置換をどのように実行できますか? :

今後:

hello hello hello
hello hello hello

後ろに:

hello world hello
hello hello hello

つまり、どのように交換できますか?これ 窒素仕事 発生するパターン?
(またはこの場合。これ 2ND 発生するパターン? )

ベストアンサー1

すべてのPOSIXの場合sed:

$ sed -e'/hello/{' -e:1 -e'$!N;s/hello/world/2;t2' -eb1 -e\} -e:2 -en\;b2 <file
hello world hello
hello hello hello
  • 最初のゲームが終わった後、/hello/私たちは混乱を続けました。

  • ループ内で各ext行をパターン空間に読み込み、:1ndNが発生した場合にのみ置換コマンドを実行しますs。交換が成功したかどうかを見てみ2ましょう。tそうであればループが発生し:2、そうでなければループが繰り返されますb1

  • ループ内では、:2ファイルの最後まで残りの行を印刷します。

このメソッドは、2つの間のすべてを保存します。こんにちはパターン空間で。これは、最初のファイルと2番目のファイルが互いに離れている場合、大容量ファイルで問題になります。

おすすめ記事