サイトアイコン ex1-lab

grepとsedで特定のディレクトリ以下のファイルを一括置換

centos_logo

centos_logo

「grep」と「sed」で複数のファイルを一括置換

特定のディレクトリ内のファイルで特定の文字を一括置換するには「grep」と「sed」をコマンドを利用すると一括で置換できます

書式:grep -rl “置換対象の文字列” 対象ディレクトリ | xargs sed -i ‘s/置換対象の文字列/置換後の文字列/g’

$ grep -rl "test_data1" /var/www/html/ | xargs sed -i 's/test_data1/test_data2/g'

一括する置換する文字列がIPアドレスの場合

特定のIPアドレスを違うIPアドレスを置換する場合はですが、ピリオド(.)はエスケープする必要があるので「192\.168\.0\.1」のようにバックスラッシュ( \ )エスケープする必要があります

% grep -rl "192.168.0.5" /var/www/html/ | xargs sed -i 's/192\.168\.0\.5/192\.168\.0\.10/g'

 

モバイルバージョンを終了