在perl中逃离管道

时间:2014-07-29 13:05:40

标签: perl ksh

我在perl中使用backtics和pipe时遇到了一些问题。我有以下代码:

my @arr_lsdev = `lsdev -C | grep inet | awk '{print \$1}'` ;
print Dumper @arr_lsdev ;

但我得到以下错误:

sh[2]: 0403-057 Syntax error : `|' is not expected

我猜它与我的转义命令有关。我试过逃避|但它仍会导致同样的错误。

操作系统:AIX

Shell:KSH

2 个答案:

答案 0 :(得分:3)

请注意,错误在第2行。您实际上正在执行

my @arr_lsdev = `lsdev -C | grep inet
 | awk '{print \$1}'` ;

答案 1 :(得分:0)

您可以减少管道数量:

my @arr_lsdev = map {(split ' ')[0]} grep {/inet/} `lsdev -C`;