xargs“参数列表太长”

xargs“参数列表太长”

我想做这样的事:

cat 5.txt | xargs -0 openssl prime

但 xargs 说参数列表太长


编辑:

cat 3.txt | xargs -n 1 openssl prime | wc -l

有用,谢谢

答案1

您可以尝试xargs使用-n

每个命令行最多使用 max-args 个参数。

还值得注意的xargs

在执行命令行之前,将其打印在标准错误输出上。

使用-t,这对于调试非常有用。

答案2

问题似乎在于您不应该使用 -0,-0 适用于文件中的参数由空字符而不是通常为空格的 $IFS 分隔的情况。如果文件格式为每行一个参数或参数由空格分隔,请省略 -0。

我还猜测您不打算运行openssl prime arg1 arg2 arg3 arg4...." but instead runopenssl prime arg1 then runopenssl prime arg2 , thenopenssl prime arg3 , etc, in which case, add the -1 switch as well, which is shorthand for-n 1`,如果您真的想在文件的每一行运行一次 openssl 调用,您需要:

xargs -1 openssl prime < 5.txt

或者使用 uuoc(cat 无用)

cat 5.txt | xargs -1 openssl prime

在不知道 -1 选项的非 gnu xargs 上,这将是:

xargs -n1 openssl prime < 5.txt

相关内容