Skip to main content.

Linuxでの複数ファイル内文字列の一括置換メモ

 
Linux上でのファイル内の文字列検索と、ファイル内文字列の一括置換をググってたら下記のURLがすごく参考になったのでメモメモ。

Linux上で複数ファイルから文字列を一括検索/置換するコマンド - スーパーソフトウエア 世界最強のホットテクノロジー - アプリ開発
http://tokyo.supersoftware.co.jp/superlabs/2012/07/261755.html


以下、引用。

#複数ファイルから文字列を一括検索
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'



いつもはその都度ググってたので、今後の参照用にブログにメモメモ。
このエントリーをはてなブックマークに追加
 

comments powered by Disqus