|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|

perlノート


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ワンライナー

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の元ソースの呼び出しもと行数を表示