- 追加された行はこの色です。
- 削除された行はこの色です。
[[Perl]]
#contents
* ワンライナー
* 関連するコマンドラインオプション
**sedエミュレーション
:-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
* 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) {$_=""}'