perl one liner
最近Perlをちょこちょこ勉強中。スクリプト言語を覚えるつもりもあって、仕事で使いながら覚えてる。
perlコマンドのeオプションを使うと、そのままperlのコードが書けるのでそれで記述。one-linerって言うらしくて、1行で書けるコマンドみたいな処理。
ちょっとしたことに使えるのがいい所。Javaで書くと時間掛かることや、特にモジュールにする必要もない作業だとこっち使うほうが効率的。このちょっとしたことが仕事の手間を減らしてくれる。
perl -e 'print "hello world!!\n"'
と書くと、
hello world!!
って出る。
nオプションをつけると、標準入力または、引数でファイル名を渡せばそれをループさせてくれる。
- 正規表現に一致した行だけを表示する
perl -ne 'if($_=~m/正規表現/){print;}' 対象ファイル名
または、
perl -ne 'print if($_=~m/正規表現/)' 対象ファイル名
- リダイレクトするとファイルにも出せる。
perl -ne 'if($_=~m/正規表現/){print;}' 対象ファイル名 > 出力ファイル名