Как я могу заставить xargs играть по правилам с stdin?

"repo актуальная" проверка, быстро, таким образом, это не должно быть беспокойство. Обхождение репозиториев отключения ради нескольких секунд потребует кровавую месть позже...

Если Вы волнуетесь это yum -y install package-A; yum -y install packge-B; ... сделает проверку много раз, просто сделает yum -y install package-A package-B ...

BTW, Fedora 18 имеет экспериментальное dnf вкусная замена, намного быстрее и точная. Это может быть установлено в параллели. Работы как очарование, но все еще имеет некоторые грубые края (когда оно решает, что существуют неразрешимые конфликты, оно только заканчивается тихо, ничего не делая).

7
12.04.2015, 23:02
2 ответа

Обычно XARGS поставит несколько аргументов в одну командную строку. Чтобы ограничить его одному аргументу за раз, используйте опцию -N -N :

$ seq 3 | xargs -n 1 echo
1
2
3

Документация

из Человек Xargs :

-N MAX-ARGS
Используйте при большинстве аргументов Max-Args на командную строку. Меньше, чем аргументы Max-args будут использоваться, если Размер (см. опцию -s) превышено, если опция -x не будет приведена, в этом случае выйдет Xargs.

Разница между -N -N и -L

-L аналогична, но имеет дополнительную функцию: в отличие от -N , линии с пробелами продолжается на следующую строку. Соблюдайте:

$ echo $'1 \n2\n3\n4'
1 
2
3
4
$ echo $'1 \n2\n3\n4' | xargs -L 1 echo
1 2
3
4
$ echo $'1 \n2\n3\n4' | xargs -n 1 echo
1
2
3
4
14
27.01.2020, 20:14

Немного больше исследований показали ответ из Make xargs выполнить команду один раз для каждой строки входа:

$ seq 1 3 | xargs -L 1 echo
1
2
3
6
27.01.2020, 20:14

Теги

Похожие вопросы