GNU Parallel is a UNIX shell tool for running jobs in parallel. Learn how to use GNU Parallel from the developer of GNU Parallel.
Author(s): Ole Tange
Year: 2018
Language: English
Pages: 112
1 How to read this book
2 Learn GNU Parallel in 15 minutes
2.1 Input sources
2.2 Build the command line
2.3 Control the output
2.4 Control the execution
2.5 Pipe mode
2.6 That's it
3 Make test files
4 Input sources
4.1 A single input source
4.2 Multiple input sources
4.2.1 Link arguments from input sources
4.3 Change the argument separator.
4.4 Change the record delimiter
4.5 End-of-file value for input source
4.6 Skipping empty lines
5 Build the command line
5.1 No command means arguments are commands
5.2 Replacement strings
5.2.1 The 7 predefined replacement strings
5.2.2 Change the replacement strings
5.2.3 Perl expression replacement string
5.2.3.1 Functions for perl expression replacement strings
5.2.4 Dynamic replacement strings
5.2.5 Positional replacement strings
5.2.6 Positional perl expression replacement string
5.2.7 Input from columns
5.2.8 Header defined replacement strings
5.2.9 More pre-defined replacement strings with --plus
5.2.10 Dynamic replacement strings with --plus
5.3 Insert more than one argument
5.4 Quote the command line
5.5 Trim space from arguments
5.6 Respect the shell
6 Control the output
6.1 Tag output
6.2 See what is being run
6.3 Force same order as input
6.4 Output before jobs complete
6.4.1 Buffer on disk
6.5 Save output into files
6.6 Save to CSV/TSV
6.7 Save to an SQL base
6.7.1 CSV as SQL base
6.7.2 DBURL as table
6.7.3 Use multiple workers
6.8 Save output to shell variables
6.8.1 Do not read from a pipe
6.8.1.1 Use a temporary file
6.8.1.2 Use process substitution
6.8.1.3 Use a FIFO
6.8.2 env_parset
7 Control the execution
7.1 Number of simultaneous jobs
7.2 Shuffle job order
7.3 Interactivity
7.4 A terminal for every job
7.5 Timing
7.6 Progress information
7.7 Logfile
7.8 Resume jobs
7.9 Termination
7.9.1 Unconditional termination
7.9.2 Termination dependent on job status
7.10 Retry failing commands
7.10.1 Termination signals
7.11 Limit the resources
7.11.1 Make your own limitation
8 Remote execution
8.1 Sshlogin
8.1.1 SSH command to use
8.1.2 Multiple servers
8.1.3 Divide servers into groups
8.1.3.1 Host group defined by argument
8.2 Transfer files
8.3 Working dir
8.4 Avoid overloading sshd
8.5 Ignore hosts that are down
8.6 Run the same commands on all hosts
8.7 Transfer environment variables and functions
8.8 Show what is actually run
9 Pipe mode
9.1 Block size
9.2 Records
9.3 Record separators
9.4 Header
9.5 Fixed length records
9.6 Programs not reading from stdin
9.6.1 --cat
9.6.2 --fifo
9.7 Use --pipepart for high performance
9.8 Duplicate all input using --tee
10 Miscellaneous features
10.1 Shebang
10.1.1 Input data and parallel command in the same file
10.1.2 Parallelize existing scripts with --shebang-wrap
10.2 Semaphore
10.2.1 Mutex
10.2.2 Counting semaphore
10.2.3 Semaphore with timeout
10.3 Informational
10.4 Profiles
11 GNU Free Document License
0. Preamble
1. Applicability and definitions
2. Verbatim copying
3. Copying in quantity
4. Modifications
5. Combining documents
6. Collections of documents
7. Aggregation with independent works
8. Translation
9. Termination
10. Future revisions of this license
11. Relicensing
Addendum: how to use this license for your documents