- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Perl/言語仕様/ワンライナー へ行く。
- 1 (2006-04-19 (水) 03:06:34)
- 2 (2010-02-16 (火) 02:01:18)
- 3 (2011-06-11 (土) 18:49:59)
ワンライナー
-e 基本
$ perl -e 'print "foo"' foo
-p 1行ずつ読み込み、プリントする
$ perl -p -e '' /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh
$ perl -p -e 'print ++$i, ": "' /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
$ perl -p -e 's/^[^:]+/\*\*\*/;' /etc/passwd ***:x:0:0:root:/root:/bin/bash ***:x:1:1:daemon:/usr/sbin:/bin/sh ***:x:2:2:bin:/bin:/bin/sh
-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.