Mac で複数ファイルの一括置換作業をすることになった。Windows ではフリーのアプリがたくさんあるが、Mac ではなかなか適当なものが見つからず、コマンドラインでの作業がベストと判断。

 

■コマンドライン

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

find ./ -name "*.xml" -exec perl -i -pe 's|<br>\r||g' {} \;

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

意味:このディレクトリ以下の全てのxmlファイルの<br>を取り除く

 

□ Mac = ¥r Windows = ¥r¥n

 

□オプション

find [dir name] :条件に合うファイルを指定したフォルダ以下から探す
-name "[target name]": 名前で検索、*はワイルドカード
-exec [cmd] {}:見つかったファイルのパスを{}に代入してcmdの内容を実行
  \; : ここで終わ

perl:実行するのはperl
-e :perlを実行して処理後perlを終了
-p :置換をファイルの先頭から最後までループ
-i:複数ファイル一括処理

's|[a]|[b]|': aをbに置換
g:繰り返し置換