多数のファイルを「検索して置換」するにはどうすればよいでしょうか?

多数のファイルを「検索して置換」するにはどうすればよいでしょうか?

grep多くのファイル内の文字列を検索するコマンドを使用しています。「検索と置換」に似たものはありますか?

答え1

あなたが探しているのはsedコマンド。たとえば、現在のディレクトリ内のすべてのテキスト ファイルで「dog」を「cat」に置き換えるには、次のようにします。

sed -i 's/dog/cat/' *.txt

答え2

sed が思い浮かびます。例:

sed s/cat/dog/ <input >output

これは、行内で cat を検索し、ファイル入力内のその場所に dog を配置して、ファイル出力に書き込みます。

答え3

sedは適切なツールですが、代わりに、ex次のコマンドを使用することもできますvim

vim -c 'args <files> | argdo %s/cat/dog/g | x'

<files>置換を行うファイルまたはパターンのリストです。

答え4

Vim を Ex モードで使用できます:

for b in *.txt
do
  ex -sc '%s/OLD/NEW/g|x' "$b"
done
  1. %すべての行を選択

  2. s代わりの

  3. g各行のすべてのインスタンスを置換する

  4. x保存して閉じます

関連情報