perlのワンライナー

よく忘れるのでメモ

↓は普通の使い方

perl -e 'print "hello"'

↓test.txtの中身を表示 -nオプションは
こんな感じの意味

perl -ne 'print' test.txt

while (<>) {
...  # your program goes here
}

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

perl -pe '' test.txt

while (<>) {
...  # your program goes here
    print;
}

ライン処理を追加する(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

参考リンク