sed を使用して 1 つの単語を見つけ、別の単語に置き換えます。

sed を使用して 1 つの単語を見つけ、別の単語に置き換えます。

ファイルに「mode v」などの単語があります。 「mode sv」に変えたいです。しかし、パターンの後にスペースがあるため、すべての努力は失敗しました。

ベストアンサー1

sedこのように検索して置き換えることができます。

$ sed 's/mode v/mode sv/g'

はい

次のサンプルファイルがあるとしましょう。

$ cat afile.txt 
mode v modev mode v
blah
blah blah modev mode
blah
modev mode v

sedファイルを検索/交換し、次のようにバックアップを維持するために使用できます。

$ sed -i.bak 's/mode v/mode sv/g' afile.txt 

これで2つのファイルがあります。

$ ls -ltr | grep afile
-rw-rw-r--. 1 slm slm      64 Sep 23 20:13 afile.txt.bak
-rw-rw-r--. 1 slm slm      67 Sep 23 20:15 afile.txt

元のテキストが次のように修正されました。

$ cat afile.txt
mode sv modev mode sv
blah
blah blah modev mode
blah
modev mode sv

メモ:保証された単語境界で必要に応じてmode v検索にサフィックスを追加できます\b

$ sed -i.bak 's/mode v\b/mode sv/g' afile.txt 

おすすめ記事