perl -p -i -e 'commnad'2006年09月12日 11時59分57秒


perl -p -i -e 's/SOMETHING/ANOTHER/g' files

perl で sed コマンドと等価の動作をしながら、ファイルを直接編集する方法。

sh -c 'for i in files;
  do sed 's/SOMETHING/ANOTHER/g' $i
    > /tmp/sed.XXX && 
  cat /tmp/sed.XXX > $i;
done'

perl を使う唯一の理由。大量のファイルを更新する必要があるときに、sed をループ内で呼び出すとプロセスの生成とファイルのリダイレクトで遅くなるので。perl は肌に合わないみたいで、sed の変わりとしてのみ perl でプログラムを書く。

VOS 上ではその違いはとても顕著だが、unix 上でも歴然とした差が出る。

次回