2009年2月28日土曜日

perlのワンライナー

よく忘れるのでメモ

↓は普通の使い方

perl -e 'print "hello"'


↓test.txtの中身を表示 -nオプションは
こんな感じの意味
while (<>) {
... # your program goes here
}

perl -ne 'print' test.txt


↓test.txtの中身を表示 -pオプションは
-nの最後にプリント文をかます様なイメージ

perl -pe '' test.txt


ライン処理を追加する(print文の後に改行+<>後にchmop)

perl -lpe '' test.txt


-iオプションは対象のファイルを上書きする
注意するのは-iはその後に変更前のファイル名を取るので
まとめないこと(-ipleは駄目)
上がtest.txtの頭に行番号を付加する
下が変更前のtest.txtをtest.txt.backとして残す

perl -i -ple 's/^(.*$)/$.$1/' test.txt
perl -i.back -ple 's/^(.*)/$. \: $1/' test.txt


参考リンク
http://blog.livedoor.jp/dankogai/archives/51026593.html
http://perldoc.jp/docs/perl/5.6.1/perlrun.pod
http://www.google.co.jp/

0 件のコメント: