,当我手动运行,但是当我把它使用反引号或系统命令的Perl脚本,它给这个错误调用从perl的awk不工作,解压缩重定向
SH下面的命令正常工作: - C:0行:附近意外的标记语法错误'(”
脚本快照:
#Find contents of myFile in zipfile and output the matched records to output.txt
$cmd = "awk -F\"|\" 'NR==FNR{hash[\$0]=1;next} \$237 in hash' $myFILE <(unzip -p $zipfile *XYZ*) >> output.txt";
$result=`$cmd`;
看来,我们不能称之为内作为一个子shell即(解压...) ystem通过Perl调用。请告诉我,因为几天以来我一直在挣扎。
好悲伤......难怪这是一场斗争。谁会让所有这些逃脱权利。为什么这个'awk'?通过这种方式,你可以使用反引号(shell),然后运行一个命令(awk,你需要对其进行转义),在该shell的子shell中运行另一个程序(解压缩,你需要转义)。 ..为什么不在Perl中处理(解压缩返回的)所有的处理,如果脚本是在Perl中? – zdim
'<(...)'无效'sh'语法 – ikegami
如果您重新确定您的输入和输出是什么,那么我们将给您一个perl的答案,这个答案既简单又不脆弱。但是,为什么不使用其中一个perl模块做 – Sobrique