我在我的MacBook運行這樣的命令,使用GNU並行:GNU並行,輸入文件太多,參數列表太長
parallel "sample operation" ::: samplefolder/*.txt
的問題是,我有20,000個警報txt文件在samplefolder
,這導致Argument list too long
錯誤。
當我試着在ubuntu機器上運行相同的腳本時沒有這樣的問題。
我試過Google搜索和閱讀一些man
文件,但沒有運氣。我怎麼解決這個問題?
謝謝!
我在我的MacBook運行這樣的命令,使用GNU並行:GNU並行,輸入文件太多,參數列表太長
parallel "sample operation" ::: samplefolder/*.txt
的問題是,我有20,000個警報txt文件在samplefolder
,這導致Argument list too long
錯誤。
當我試着在ubuntu機器上運行相同的腳本時沒有這樣的問題。
我試過Google搜索和閱讀一些man
文件,但沒有運氣。我怎麼解決這個問題?
謝謝!
嘗試:
ls samplefolder | grep \.txt | parallel "sample operation samplefolder/{}"
只是讓該示例操作成爲bash文件: find samplefolder -name * .txt -print0 | xargs -P 8 -n 1 -0 ./run.sh
如果某些文件名中有空格,這將會遇到麻煩。 – ArtemB
爲什麼?你有沒有嘗試過?請不要假設GNU Parallel腦死亡。 –
更正 - 「如果文件名中有換行符」。 GNU並行每行讀取一個參數,因此空間將會正常。如果文件名中有換行符(在UNIX上仍然是有效的文件名),則爲Nut GNU並行將視爲多個文件名。是的,這次我測試了它。 :-) – ArtemB