我想做这样的事:
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 run
openssl prime arg1 then run
openssl prime arg2 , then
openssl 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