我想讀取分隔符爲:
的文件中的列。perl -a:如何更改列分隔符?
我試了一下這樣的(因爲根據http://www.asciitable.com,結腸的八進制表示爲072):
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
我希望它打印b
,但它不工作。在perlrun
我想讀取分隔符爲:
的文件中的列。perl -a:如何更改列分隔符?
我試了一下這樣的(因爲根據http://www.asciitable.com,結腸的八進制表示爲072):
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
我希望它打印b
,但它不工作。在perlrun
看-F
:
% echo "a:b:c" | perl -a -F: -ne 'print "$F[1]\n";'
b
注意,值取正則表達式,所以一些分隔符可能需要一些額外的轉義:
% echo "a.b.c" | perl -a -F. -ne 'print "$F[1]\n";'
% echo "a.b.c" | perl -a -F\\. -ne 'print "$F[1]\n";'
b
-0
指定記錄(線)分離器。這是原因的Perl收到三條線:
>echo a:b:c | perl -072 -nE"say"
a:
b:
c
因爲有任何的線條沒有空格,如果-a
將被用於$F[1]
將是空的。
-F
指定輸入字段分隔符。這是你想要的。
perl -F: -lanE'say $F[1];'
或者,如果你堅持使用舊的Perl:
perl -F: -lane'print $F[1];'
命令行選項都記錄在perlrun。
很酷,謝謝!我想知道'-0'是什麼,然後...... – Frank
'-0'設置*記錄分隔符*(Perl將下一行分開的概念) – mob
它是記錄分隔符,而不是字段分隔符。 – tripleee