Fra*_*ank 6 perl command-line record
我想读取分隔符所在的文件中的列:.
我试过这样的(因为根据http://www.asciitable.com,冒号的八进制表示是072):
$ echo "a:b:c" | perl -a -072 -ne 'print "$F[1]\n";'
Run Code Online (Sandbox Code Playgroud)
我想要它打印b,但它不起作用.
too*_*lic 13
看看-Fperlrun:
% echo "a:b:c" | perl -a -F: -ne 'print "$F[1]\n";'
b
Run Code Online (Sandbox Code Playgroud)
请注意,该值被视为正则表达式,因此某些分隔符可能需要一些额外的转义:
% 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
Run Code Online (Sandbox Code Playgroud)
-0指定记录(行)分隔符.这是因为Perl收到三行:
>echo a:b:c | perl -072 -nE"say"
a:
b:
c
Run Code Online (Sandbox Code Playgroud)
由于这些行中没有任何空格,$F[1]如果-a要使用它们将是空的.
-F指定输入字段分隔符.这就是你想要的.
perl -F: -lanE'say $F[1];'
Run Code Online (Sandbox Code Playgroud)
或者,如果您遇到旧的Perl:
perl -F: -lane'print $F[1];'
Run Code Online (Sandbox Code Playgroud)
perlrun中记录了命令行选项.
| 归档时间: |
|
| 查看次数: |
5994 次 |
| 最近记录: |