xargs: запуск утилит на список, простая многопоточность в bash

xargs позволяет легко запускать утилиты на списки аргументов, даже если утилиты не поддерживают работу со списками. Реализуется простейшим образом – xargs каждый раз заново вызывает утилиту при запуске на список. Например, можно создать на основе списка множество директорий с помощью mkdir.

xargs utility reads space, tab, newline and end-of-file delimited strings from the standard input and executes utility with the strings as arguments
bash-3.2$ cat dir_lst.txt 
dir1
dir2
dir3

bash-3.2$ cat dir_lst.txt | xargs mkdir

bash-3.2$ ls -ltr | grep dir
-rw-r--r-- 1 petrredkin staff 15 Apr 13 22:42 dir_lst.txt
drwxr-xr-x 2 petrredkin staff 64 Apr 13 22:43 dir1
drwxr-xr-x 2 petrredkin staff 64 Apr 13 22:43 dir2
drwxr-xr-x 2 petrredkin staff 64 Apr 13 22:43 dir3

 

Simple threads

Простая многопоточность в bash: делаем скрипт для одной сети/одного IP (с любым из скнов представленных ниже, например), далее делаем список сетей/IP, открываем его через cat и натравляем скрипт через xargs.

cat nets | xargs -n 1 -I ^ -P 10 bin/test ^

Leave a Reply