Perl/ワンライナー

Top / Perl / ワンライナー

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

-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
Last-modified: 2006-01-29 (日) 16:05:38 (4551d)