在perl中使用管道(|)的语法错误意外令牌

时间:2014-04-24 07:51:53

标签: linux perl shell awk

我正在制作Perl脚本,我花了很多时间在我的脚本中找到这种错误

 syntax error near unexpected token `|'
` | awk -F '/' '{print $11}''

这是我的脚本中出现错误的一行

awk -F \'=\' \'{print \$2}\' $bundle | awk -F \'/\' \'{print \$11}\'

这就是我所做的。这个输出是我想要的文件的名称。

1 个答案:

答案 0 :(得分:2)

perl中,使用split而不是调用外部命令:

(split '/', $bundle)[10];

将返回你想要的东西。

这就是我的意思:

use strict;
use warnings;

my $bundle = "a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/";

print `echo $bundle | awk -F \'/\' \'{print \$11}\'`;
print ((split '/', $bundle)[10], "\n");

两行都会输出k

但是我很困惑,你的命令的双引号是什么?