【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コマンドラインの世界は奥が深いですなぁ。[E:think]

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コマンドラインの世界は奥が深いですなぁ。[E:think]

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください