,當我手動運行,但是當我把它使用反引號或系統命令的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