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

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

cat 5.txt | xargs -0 openssl prime

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


Редактировать:

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

работает, спасибо

2 ответа

Вы можете попробовать использовать xargs"s -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

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

xargs -n1 openssl prime < 5.txt
Другие вопросы по тегам