perl -a:如何更改列分隔符?
我想读取文件中分隔符为 :
的列。
我这样尝试(因为根据http://www.asciitable.com,冒号的八进制表示是072):
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
我希望它打印 b
,但它不起作用。
I want to read the columns in a file where the separator is :
.
I tried it like this (because according to http://www.asciitable.com, the octal representation of the colon is 072):
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
I want it to print b
, but it doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查看perlrun中的
-F
:请注意,该值被视为正则表达式,因此某些分隔符可能需要一些额外的转义:
Look at
-F
in perlrun:Note that the value is taken as regular expression, so some delimiters may need some extra escaping:
-0
指定记录(行)分隔符。这是因为 Perl 接收到三行:由于这些行中没有空格,如果使用
-a
,$F[1]
将为空。-F
指定输入字段分隔符。这就是你想要的。或者,如果您坚持使用较旧的 Perl:
命令行选项记录在 perlrun 中。
-0
specifies the record (line) separator. It was cause Perl to receive three lines:Since there's no whitespace on any of those lines,
$F[1]
would be empty if-a
were to be used.-F
specifies the input field separator. This is what you want.Or if you're stuck with an older Perl:
Command line options are documented in perlrun.