簡體   English   中英

perl -a:如何更改列分隔符?

[英]perl -a: How to change column separator?

我想讀取分隔符所在的文件中的列:

我試過這樣的(因為根據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中記錄了命令行選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM