複数ファイルにまたがって同じテキスト置換を行う方法。 例えばディレクトリ内のHTMLファイル全てに対して置換を行いたい場合1個1個ファイルを開いて編集するのは面倒なので、一発で行いたい。 find . -name "*.html" -exec sed -i 's/元テキスト/置換後テキスト/' {} \; 何をしているのか細かく説明すると find . -name "*.html" -exec このディレクトリ(.)の中にある名前が*.htmlにマッチするファイルに対して sed -i 's/元テキスト/置換後テキスト/' {} \; 上書き保存で(-i) 元テキストを置換後テキストに変更する となる。 ちなみに {} はfindの結果で得た(この場合はhtmlファイルのファイル名)が入るようになっている。
« Debian Sarge Linuxのdefined in discarded sectionが再発 | トップページ | TinySVMのPerlモジュールをエラーでインストールできないとき » sedとgrepで、あるディレクトリ以下のファイル中の文字列を一括置換 [Programming] あるディレクトリ以下の、とある文字列を含むファイルのうち、 一部のファイルを除く全てのファイルを対象に、 文字列置換を一括してかけた。sedとgrepを使用した。 忘れそうなのでメモしておく。 % grep -lr とある文字列 * | grep -v '除外するパス' | xargs sed -i 's/とある文字列/置換後の文字列/g' grepの-lオプションでマッチするファイル名だけ出力。 grepの-vオプションで。ファイルリストから除外したい文字を入力。 邪魔なものが沢
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く