parallel
GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU parallel can then split the input into blocks and pipe a block into each command in parallel.[1]
- GNU Project Homepage [EN]
- parallel [EN] @ Fedora Package
- parallel [EN] @ Homebrew Formula
Documentation
- man 1 'parallel' [EN]
- man 1 'parallel_tutorial' [EN]
Syntax
parallel [PARAMETER ...] [COMMAND [PARAMETER ...]]
Parameters
- -0, --null
- Input items are terminated by a null character instead of by whitespace, and the quotes and backslash are not special (every character is taken literally). Disables the end of file string, which is treated like any other argument. Useful when input items might contain white space, quote marks, or backslashes. The GNU find -print0 option produces input suitable for this mode.
- -I STRING
- Replace occurrences of STRING in the initial-arguments with names read from standard input.
- -L NUMBER
- Use NUMBER nonblank input lines per command line. Trailing blanks cause an input line to be logically continued on the next input line.
Examples
- Print results of a search with a prefix
find . -type 'f' -print0 | parallel -0 -L 1 echo 'path ='