Я хочу сделать что-то вроде этого:
cat 5.txt | xargs -0 openssl prime
но xargs говорит, что список аргументов слишком длинный
Редактировать:
cat 3.txt | xargs -n 1 openssl prime | wc -l
работает, спасибо
Вы можете попробовать использовать xargs
с -n
:
Используйте не более аргументов max-args в командной строке.
Также стоит отметить xargs
можно сделать
Перед выполнением распечатайте командную строку в стандартном выводе ошибок.
с участием -t
, что весьма полезно для отладки.
Проблема звучит так, как будто вы не должны использовать -0, -0 - это когда у вас есть аргументы в файле, разделенные нулевыми символами, а не $ IFS, который обычно является пробелом. Если файл отформатирован с одним аргументом в строке или аргументами, разделенными пробелами, опустите -0.
Я также предполагаю, что вы не собираетесь запускать его openssl prime arg1 arg2 arg3 arg4...." but instead run
openssl prime arg1then 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 5.txt | xargs -1 openssl prime
на xargs, отличном от gnu, который не знает опции -1, это будет:
xargs -n1 openssl prime < 5.txt