ワンライナー

-e 基本

構造

  (記述1)...
  (記述2)...

$ perl -e 'print "foo"'
foo

-n 1行ずつ読み込む

構造

while (<>) {
  (記述1)...
  (記述2)...
}

ifconfig eth0 | perl -ne 'print "DEBUG:$1" if /inet addr:(\S+)/'
DEBUG: 192.168.0.1

-p 1行ずつ読み込み、print()する

構造

while (<>) {
  (記述1)...
  (記述2)...
  print $_;
}

 例

cat /etc/passwd | perl -pe 'print $num++ . ": "'
0: root:x:0:0:root:/root:/bin/bash
1: bin:x:1:1:bin:/bin:/sbin/nologin
2: daemon:x:2:2:daemon:/sbin:/sbin/nologin

-i ファイルを上書きする

$ perl -i -p -e 's/a/A/g' sample.txt

sample.txtは内容が修正され、上書きされる。 以下のようにすると、バックアップファイル(sample.txt.bak)が作成される。

$ perl -i.bak -p -e 's/a/A/g' sample.txt

BEGIN{} END{} 前後に処理を加える

$perl -p -e 'BEGIN{ print "/etc/passwd:\n";} print ++$i, ": "; END{print "done.\n";}' /etc/passwd
/etc/passwd:
1: root:x:0:0:root:/root:/bin/bash
2: daemon:x:1:1:daemon:/usr/sbin:/bin/sh
3: bin:x:2:2:bin:/bin:/bin/sh
done.

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2014-08-04 (月) 05:31:44 (1420d)