GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドラインで複数のファイルの文字列を置き換える方法

Kaspar の回答に似ていますが、g フラグを使用して行のすべての出現箇所を置き換えます。

find ./ -type f -exec sed -i 's/old_string/new_string/g' {} \;

大文字と小文字を区別しない場合:

find ./ -type f -exec sed -i 's/old_string/new_string/gI' {} \;

cd /path/to/your/folder
sed -i 's/foo/bar/g' *

「foo」の出現は「bar」に置き換えられます。

macOS などの BSD システムでは、-i '.bak' のようなバックアップ拡張機能を提供する必要があります。 または、マンページごとに「破損または部分的なコンテンツのリスク」があります。

cd /path/to/your/folder
sed -i '.bak' 's/foo/bar/g' *

Linux
  1. Linuxでファイルの名前を変更する方法

  2. Linuxで複数のファイルを圧縮する方法

  3. Linuxで一度に複数のファイルの名前を変更する方法

  1. ファイル内の文字列を置き換える方法は?

  2. Sedを使用して複数行の文字列を置き換える方法は?

  3. コマンドラインを使用してLinuxを再起動する方法

  1. Linuxコマンドラインのすべてのファイルで単語のすべての出現箇所を置き換える方法

  2. コマンド ラインで文字列を 16 進数に変換する

  3. Linuxでjar内のファイルをコマンドラインに置き換える方法は?