Perl de OneLiner
Perlを使って、1行で書いた実用的なアプリケーションをたくさん紹介していきます。
- ここで紹介するonelinerは、Win32上で実行する場合とUnixまたはUnixライクOS上で実行する場合には、異なる記述をする必要があります。具体的には、もっとも外側の引用符が、UnixまたはUnixライクOS上で実行する場合は、これが単引用符(シングルクォーテーション)であるのに対し、Win32プラットフォーム上ではダブルクォーテーションである必要があります。それによってスクリプトの中身を変更する必要がある場合があります。ここでは、なるべく2つともご紹介したいと思います。
- Win32に関してはActivePerl Build 522、Unix版に関してはFreeBSD 3.3-RELEASE上のperl, version 5.005_03で動作確認を行っています。
- ご利用されるシステムでaliasが利用できる場合、ここでご紹介したスクリプトにaliasを設定すると便利でしょう。
- ここで紹介したスクリプトは、インストールしただけの初期状態では動作しないものがあります。その場合、必要なモジュールなどは明記しますので、各自でモジュールなどをインストールされてからご利用ください。
- ここで紹介したスクリプトは、どれも完全に無保証です。これらのスクリプトは、それが有用であろうとの希望に基づいて紹介されていますが、しかし一切の保証はありません。これらに商品価値がある、あるいはある種の目的に合致するという暗黙的な保証すらもありません。あなたは各スクリプトを再配布し、また改変することができます。
行番号付加フィルタ
- Unix
perl -ne 'printf("%5d: %s",$.,$_);'
- Win32
perl -ne "printf(\"%5d: %s\",$.,$_);"
%5d: の部分をいじると、行番号部分の書式を変更することができます。現在では、左に5桁分のスペースが付加されますが、これを拡大/縮小するには、5の部分を変更してください。
簡易HTMLタグ削除フィルタ
- Unix
perl -0 -pe 's/<[^>]*>//g;'
- Win32
perl -0 -pe "s/<[^>]*>//g;"
連続する改行を削除
- Unix
perl -0 -pe 's/\n+/\n/g;'
- Win32
perl -0 -pe "s/\n+/\n/g;"