我有短的bash代码
cat example.txt | grep mail | awk -F, '{print $1}' | awk -F= '{print $2}'
Run Code Online (Sandbox Code Playgroud)
我想在perl脚本中使用它,并将其输出逐行放入数组中.我尝试了这个,但没有奏效
@array = system('cat /path/example.txt | grep mail | awk -F, {print $1} | awk -F= {print $2}');
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助......
Raf*_*ler 11
返回值system()是您执行的命令的返回状态.如果你想要输出,请使用反引号:
@array = `cat /path/example.txt | grep mail | awk -F, {print \$1} | awk -F= {print \$2}`;
Run Code Online (Sandbox Code Playgroud)
在列表上下文中计算时(例如,当返回值分配给数组时),您将获得输出行(如果没有输出,则为空列表).
尝试:
@array = `cat /path/example.txt | grep mail | awk -F, {print \$1} | awk -F= {print \$2}')`;
Run Code Online (Sandbox Code Playgroud)
注意到使用反引号并且美元符号需要被转义,因为qx运算符将默认插值(即它将认为$ 1是Perl变量而不是awk的参数).