ワンライナー
Myワンライナー「タグジャンプできるGrepの形式で出力」
perl -ne "$i++; if(/^#/){print "log_XXX.txt" ;printf("(%3d):"
,$i);print};"log_XXX.txt > grep_.txt |
log_XXX.txtを引数にする。(スクリプトの中身に残ってしまう、、、
ワンライナーで指定した引数ファイルをスクリプト中に指定するのは、どうやるんだ??
perl -ne " ワンライナーの内容 "
perl -pe " "
リスト7:ランダムな値を使っての書き換え
# replace string XYZ with a random number less than 611 in these filesperl -i.bak -pe "s/XYZ/int rand(611)/e" f1 f2 f3
|
これは、XYZ
を611(この値は、任意に選択できる)未満の値に置き換えるフィルターです。rand()
は、0から引数までの間のランダムな値を返してくる関数でした。
置換のつどintrand(611)が評価されますので、XYZ
は、毎回、異なるランダム値に置き換えられることになります。
リスト8:ファイルの基本的な性質の開示
# 1. Run basename on contents of fileperl -pe "s@.*/@@gio" INDEX
# 2. Run dirname on contents of fileperl -pe 's@^(.*/)[^/]+@$1n@' INDEX
# 3. Run basename on contents of fileperl -MFile::Basename -ne 'print basename $_' INDEX
# 4. Run dirname on contents of fileperl -MFile::Basename -ne 'print dirname $_' INDEX
|
IBM 洗練されたPerl: ワンライナー102 より。
ここ 、 perlの元ソースの呼び出しもと行数を表示