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’

いつもはその都度ググってたので、今後の参照用にブログにメモメモ。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.