Назад | Перейти на главную страницу

xargs «слишком длинный список аргументов»

Я хочу сделать что-то вроде этого:

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 runopenssl prime arg1then 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 5.txt | xargs -1 openssl prime

на xargs, отличном от gnu, который не знает опции -1, это будет:

xargs -n1 openssl prime < 5.txt