ablog

不器用で落着きのない技術者のメモ

Perl ワンライナー(-nまたは-pオプションつき)に引数を渡す方法

テストのため、hoge.log を作成する。

$ perl -le 'for(1..10){print}' > hoge.log
$ cat hoge.log 
1
2
3
4
5
6
7
8
9
10

以下の例では、引数のうち「hoge.log」をファイルとしてオープンして一行ずつ処理し、「1」と「2」はワンライナーの中で引数として受け取るだけで、ファイルとして処理していない。

$ perl -nle 'BEGIN{@p=splice(@ARGV,1,2);map{print "ARGV:$_"}@ARGV;map{print "param:$_"}@p}print' hoge.log 1 2
ARGV:hoge.log
param:1
param:2
1
2
3
4
5
6
7
8
9
10