PerlワンライナーのためのPerlオプション
Perlワンライナーを書くためには、簡単なPerlの構文のほかに、Perlオプションを覚える必用があります。
-eオプション
-eオプションに与えられた文字列をスクリプトとして実行する。
perl -e '[PerlScrit]'
-n,-pオプション
-nオプションをつけると以下のループの内部にスクリプトがあるような動作をします。
perl -ne '[PerlScrit]'
while(<>) {
[PerlScript]
}
-pオプションをつけると以下のループの内部にスクリプトがあるような動作をします。
perl -pe '[PerlScrit]'
while(<>) {
[PerlScript]
}continue{
print $_;
}
-lオプション
-lオプションは、n,pオプションと組み合わせて使い、ループの前で、chompを実施します。
perl -ple '[PerlScrit]'
while(<>) {
chomp $_;
[PerlScript]
print $_;
}
-a,-Fオプション
-aオプションは入力された行を分割して、@Fという配列にセットします。
perl -ane 'print $F[0],"\n"' /etc/hosts
-Fオプションは-aオプションで分割するセパレータ(区切り文字)を指定します。
perl -F':' -ane 'print $F[0],"\n"' /etc/passwd
-iオプション
ファイルを編集して、バックアップを作成します。
-iオプション以降に、文字列を指定することでバックアップファイルの名前を指定することが出来ます。
文字列を指定しなければ、バックアップを作成せず、ファイルの編集のみ行います。
perl -i".bak" -pe 's/abc/ABC/g' test.txt
test.txtファイルに含まれる"abc"という文字列を"ABC"に置換え、test.txt.bakというバックアップファイルを作成します。