#contents

* 関連するコマンドラインオプション

:-e commandline|
実行するプログラムを記述
:-p|
sedエミュレーション~
1行読み込み、自動で出力~
	while (<>) {
		...             # your program goes here
	} continue {
		print or die "-p destination: $!\n";
	}
:-n|
~-pの自動出力なし版
:-a|
~-p -nによるループで自動 split~
@Fに代入される
:-Fpattern|
~-aのsplitのパターン指定
:-i[extension]|
ファイル置換(など)~
extensionを指定するとバックアップのファイルにその拡張子がつく~
指定しないと上書き

* sedエミュレーション
 perl -pe 's/hoge/HOGE/g'

* ファイル置換/バックアップ
 perl -i.bak -p -e 's/<body>/<body bgcolor="#C0C0C0">/ig;' *.html
該当するファイルの置換とバックアップ。
use File::Findより楽っぽい。

* fullpath
 perl -MCwd -MFile::Basename -pe 'chomp; $_ = Cwd::abs_path(dirname($_))."/".basename($_)."\n"'

* PukiWikiファイル名表示

 perl -pe 's/([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/ego'

* 変なの

某所にてcrontabで回そうとしてたけど消した。~
長いので適当に改行しているけど1行で。

 0 0 15 * * du -m --max-depth=1 /home | head -n -1
 | perl -ane '($size,$path)=@F; $user=$path; $user=~s|/home/||;
   echo $path ${size}MB | mail $user -c root -s "du /home" if $size > 500;'

* fml mget 用の連結

mbox っぽいのを想定。

 perl -pe 'if (!$out and m/^From /) {$out=1;} elsif ($out and m/^\s*$/) 
 {$out=0;$_="";} s/^\s+$//; if ($out) {$_=""}'

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS