我在我的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