Linux上でのファイル内の文字列検索と、ファイル内文字列の一括置換をググってたら下記のURLがすごく参考になったのでメモメモ。
以下、引用。
#複数ファイルから文字列を一括検索
find ./ -type f -print | xargs grep -l ‘hoge’
‘hoge’が含まれているファイルを検索
find ./ -type f -print | xargs grep -l ‘hoge’
‘hoge’が含まれているファイルを検索
#複数ファイルから文字列を一括置換
find ./ -type f | xargs sed -i ‘s/hoge/hage/g’
ファイル内の’hoge’を’hage’に置換
んで、実際に置換しようとしたところ、ファイル内に「/(スラッシュ)」がいくつも存在していたために
「sへのオプションが未知です」
というエラー。
そこでさらにググると下記URLに解決方法が。
sed – Sed Wiki*
http://wikiwiki.jp/sed/?sed
別に区切り文字は「/」で無くてもいいみたい。
というわけで「%」を区切り文字にして一括置換すると無事解決。
複数ファイルから文字列を一括置換(区切り文字を’%’に変更)
find ./ -type f | xargs sed -i ‘s%hoge%hage%g’
find ./ -type f | xargs sed -i ‘s%hoge%hage%g’
いつもはその都度ググってたので、今後の参照用にブログにメモメモ。