Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [116]
Музыка [19]
Общее [304]
Японский язык [12]
ZX Spectrum [71]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [134]
Ubuntu [103]
Manjaro Linux [40]
Python [3]
Магнитольное [44]
Commodore64 [15]
Игровые приставки [2]


 
Дневник (2024 » Апрель » 14 в 13:05)
GNU/Linux Как пользоваться xargs?

xargs
Уже не раз сталкивался с непонятной утилитой, присутствующей исключительно в конвеерах с другими программами, такими как find.
Кратно - с помощью утилиты xargs вывод предыдущей команды можно передать в аргументы следующей. И зачем она нужна понимаешь, когда без неё не получается.

КЛЮЧИ:

-t или --verbose выводит выполняемую команду, иначе выполняет тихо
echo "file1 file2 file3" | xargs -t touch

-p или --interactive запрашивает подтверждение
echo "file1 file2 file3" | xargs -p touch

-n или --max-args указывает количество аргументов, передаваемых второй команде за один раз. Вторая команда будет вызываться, пока не закончатся все аргументы.
echo 1 2 3 4 5 6 | xargs -n3 -t touch

Простая интерактивная запрашивалка на удаление каждого элемента выдачи ls
ls | xargs -n1 -p rm

-l или --max-lines указывает количество строк, передаваемых одной команде за раз. Она будет вызываться, пока параметры не закончатся:
ls | xargs -p -l4 rm

-i или --replace позволяет не просто передать второй команде аргументы из вывода первой команды, а вставить их в конкретное место, обозначенное двумя фигурными скобками {}.
echo Вася | xargs  -i echo Меня зовут {} Сидоров.

NOTE: вывод первой команды будет разбиваться на отдельные строки только по символам новой строки \n.
NOTE: --max-lines(-l) и --replace (-i) и --max-args (-n) являются взаимоисключающими! Использоваться будет последнее.
Исключением из этого правила является указание опции -n со значением 1 после опции -i — в этом случае опция -n игнорируется.

-d или --delimiter позволяет задать другой разделитель вместо пробела.
echo -n "file1,file2,file3" | xargs -d ',' -n1 -t touch

-a или --arg-file позволяет читать аргументы из файла вместо стандартного ввода.
xargs -t -l1 -a ips.txt ping -c1

-0 или --null. заставляет считать #00 концом строки.

NOTE: Утилита xargs чаще всего используется в сочетании с командой find. Команда find позволяет найти определенные файлы, а xargs — выполнинить над ними нужные операции.
NOTE:  Чтобы избежать проблем с именами файлов, которые содержат пробелы, нужно использовать опцию -print0, которая заставит find выводить имя файла с нулевым символом в конце. Этот вывод может быть правильно интерпретирован xargs с помощью опции -0 или --null.

-P или --max-procs позволяет запустить параллельно нескольких команд отдельными процессами.
ls {1..3} | xargs -n1 --max-procs=3 gzip



Примеров по этим ключам ещё не записал:

-E, -e, --eof - индикатор конца файла, все символы после вхождения этой строки игнорируются;
-o, --open-tty - открывать новый терминал для дочерних процессов;
-r, --no-run-if-empty - если входной поток данных пустой, команда не будет выполнена;
--show-limits - посмотреть ограничения на длину параметров в командной строке;



Ссылки:

  1. Единственная понятная статья
    https://tokmakov.msk.ru/blog/item/724

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




Категория: GNU/Linux | Просмотров: 82 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous

Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 26
Гостей: 26
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы