camel

それってPerlの一行野郎で -- それP1(ry

メモ帳 - uniq の -d と -u
存在意義がわからなかったオプションの使い道を見つけたときは妙に感動する。
a, b に共通な行を抜き出す
perl -nle '$l{$_}++;END{$l{$_}>1 and print for keys %l}' a b

ENDブロックはこう使うという例にもなっています。

a にだけ含まれる行を抜き出す -- 引数の順序に注意
perl -nle 'if(@ARGV){$l{$_}++}else{print unless $l{$_}}' b a

Perlで<>を使うときには、まだ読まれていないファイル名が@ARGVに入っています。これが空ということは最後のファイルを読んでいるということなので、それで条件を分岐させているわけです。

メモ帳 - uniq の -d と -u
Unix コマンドの神秘。

Unixでない場合もOK。

Dan the Perl Monger