【Linux Tips】 テキストファイルの一括置き換え/ファイル名の一括置き換え
久しぶりの覚書き。
perlを使った1ラインコマンドでのテキストファイルの一括置き換え方法
$ perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g" ファイル名
さらにfindを組み合わせ複数ファイルを一括処理する方法
以下のどちらでもOK。実は他にも色々と方法はある。
$ find . -name ファイル名パターン | xargs perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g"
$ find . -name ファイル名パターン -exec perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g" {} \;
もちろんperlの強力な正規表現が使えます。
ファイル名の一括置き換え方法
大量のファイルの拡張子を一気に変更とか、色々できまする。
通常は rename コマンドを使えば良いのだけど、CygwinとかMinGWではrenameが無いっぽい。
よって、シェルスクリプトと組み合わせて以下のようにすると良い。
$ find . -name ファイル名パターン | while read file; do mv $line `echo $file | sed -e 's/置換前文字列/置換後文字列/'`; done
う〜む、Linuxコマンドラインの世界は奥が深いですなぁ。
perlを使った1ラインコマンドでのテキストファイルの一括置き換え方法
$ perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g" ファイル名
さらにfindを組み合わせ複数ファイルを一括処理する方法
以下のどちらでもOK。実は他にも色々と方法はある。
$ find . -name ファイル名パターン | xargs perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g"
$ find . -name ファイル名パターン -exec perl -p -w -i.bak -e "s/置換前文字列/置換後文字列/g" {} \;
もちろんperlの強力な正規表現が使えます。
ファイル名の一括置き換え方法
大量のファイルの拡張子を一気に変更とか、色々できまする。
通常は rename コマンドを使えば良いのだけど、CygwinとかMinGWではrenameが無いっぽい。
よって、シェルスクリプトと組み合わせて以下のようにすると良い。
$ find . -name ファイル名パターン | while read file; do mv $line `echo $file | sed -e 's/置換前文字列/置換後文字列/'`; done
う〜む、Linuxコマンドラインの世界は奥が深いですなぁ。
« ココログの設定について | トップページ | 【C/C++】 streamクラスのeofメンバ »
「Linux」カテゴリの記事
- 【Git】 Gitリポジトリ構築(その2)(2012.04.30)
- 【Git】 Gitリポジトリ構築(その1)(2012.04.30)
- 【Linux】 安全なHDDのデータ消去方法(2011.01.04)
- 【Linux Tips】 テキストファイルの一括置き換え/ファイル名の一括置き換え(2009.11.18)
- 【Linux】 findコマンド(2009.01.17)
この記事へのコメントは終了しました。
コメント