Categories
SugiBlog ホームページ制作・システム開発

複数ファイル内の文字列を置換して上書き保存する

【ファイル内の文字列を置換して上書き保存する】
書式
perl -p -i -e ‘s/検索文字列/置換文字列/g’ 対象ファイル名

-p…入力ファイルから1行ずつ取り出して処理し、表示する。
-i…ファイルを修正する。拡張子を指定すると、その拡張子でバックアップを取ってくれます。
-e…直後に続く部分をスクリプトとして処理する。
s/検索文字列/置換文字列/g…文字列の置換。検索文字列を置換文字列に置き換える。最後の「g」(gスイッチ)を指定すると、1行に複数検索文字列がある場合、全て置換してくれる。なければ最初の1個だけ置換。

【複数ファイル内の文字列を置換して上書き保存する】
書式
find [検索開始ディレクトリ] [オプション] -exec perl -p -i -e ‘s/検索文字列/置換文字列/g’ {} \;

例)
find . -type f -exec perl -p -i -e ‘s/test/test/g’ {} \;
例)拡張子等を限定するとき
find ./*.txt -type f -exec perl -p -i -e ‘s/test/test/g’ {} \;

拡張子を限定しないと、JPGやGIFファイルのバイナリファイルでもなんでもアクセスしてしまうので注意すべし。

1,694 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*