2011-01-18 22:56:28 +00:00
|
|
|
### Test --spreadstdin - more procs than args
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
4
|
|
|
|
5
|
|
|
|
### Test --spreadstdin - more args than procs
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
4
|
|
|
|
5
|
|
|
|
6
|
|
|
|
7
|
|
|
|
8
|
|
|
|
9
|
|
|
|
10
|
|
|
|
3893
|
|
|
|
48894
|
|
|
|
588895
|
|
|
|
6888896
|
2011-01-19 16:07:21 +00:00
|
|
|
### Test --spreadstdin - similar to the failing below
|
|
|
|
### Test --spreadstdin - this failed during devel
|
|
|
|
8a7095c1c23bfadc311fe6b16d950582 -
|
|
|
|
8a7095c1c23bfadc311fe6b16d950582 -
|
|
|
|
### Test --spreadstdin -k
|
|
|
|
8a7095c1c23bfadc311fe6b16d950582 -
|
|
|
|
### Test --spreadstdin --files
|
|
|
|
8a7095c1c23bfadc311fe6b16d950582 -
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test --number-of-cpus
|
|
|
|
1
|
|
|
|
### Test --number-of-cores
|
2013-11-22 17:24:09 +00:00
|
|
|
8
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test --use-cpus-instead-of-cores
|
|
|
|
Cores should complete first on machines with less than 4 physical CPUs
|
|
|
|
cores done
|
|
|
|
CPUs done
|
|
|
|
### Test --tag ::: a ::: b
|
|
|
|
a b stdout-a b
|
2013-07-19 17:13:00 +00:00
|
|
|
a b stderr-a b
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test --tag ::: a b
|
|
|
|
a stdout-a
|
2013-07-19 17:13:00 +00:00
|
|
|
a stderr-a
|
2012-05-13 14:03:41 +00:00
|
|
|
b stdout-b
|
2013-07-19 17:13:00 +00:00
|
|
|
b stderr-b
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test --tag -X ::: a b
|
|
|
|
a b stdout-a stdout-b
|
2013-07-19 17:13:00 +00:00
|
|
|
a b stderr-a stderr-b
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test bash redirection <()
|
|
|
|
a
|
|
|
|
b
|
|
|
|
### Test bug https://savannah.gnu.org/bugs/index.php?33352
|
2012-12-28 20:30:30 +00:00
|
|
|
# md5sum - directly
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-12-28 20:30:30 +00:00
|
|
|
# parallel | md5sum
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-12-28 20:30:30 +00:00
|
|
|
# --recend ''
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-12-28 20:30:30 +00:00
|
|
|
# --recend '' --files
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-12-28 20:30:30 +00:00
|
|
|
# --recend '' --files --tmpdir
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-12-28 20:30:30 +00:00
|
|
|
# --recend '' --files --halt-on-error
|
2012-05-13 14:03:41 +00:00
|
|
|
350eda13a37912d755c9d733d149bdaf -
|
2012-08-06 22:52:08 +00:00
|
|
|
### Test of -j filename - non-existent file
|
2012-05-13 14:03:41 +00:00
|
|
|
Usage:
|
|
|
|
parallel [options] [command [arguments]] < list_of_arguments
|
|
|
|
parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
|
|
|
|
cat ... | parallel --pipe [options] [command [arguments]]
|
|
|
|
|
|
|
|
-j n Run n jobs in parallel
|
|
|
|
-k Keep same order
|
|
|
|
-X Multiple arguments with context replace
|
|
|
|
--colsep regexp Split input on regexp for positional replacements
|
|
|
|
{} {.} {/} {/.} {#} Replacement strings
|
|
|
|
{3} {3.} {3/} {3/.} Positional replacement strings
|
|
|
|
|
|
|
|
-S sshlogin Example: foo@server.example.com
|
|
|
|
--slf .. Use ~/.parallel/sshloginfile as the list of sshlogins
|
|
|
|
--trc {}.bar Shorthand for --transfer --return {}.bar --cleanup
|
|
|
|
--onall Run the given command with argument on all sshlogins
|
|
|
|
--nonall Run the given command with no arguments on all sshlogins
|
|
|
|
|
|
|
|
--pipe Split stdin (standard input) to multiple jobs.
|
|
|
|
--recend str Record end separator for --pipe.
|
|
|
|
--recstart str Record start separator for --pipe.
|
|
|
|
|
|
|
|
See 'man parallel' for details
|
|
|
|
|
2014-01-04 07:11:02 +00:00
|
|
|
When using programs that use GNU Parallel to process data for publication please cite:
|
2012-05-13 14:03:41 +00:00
|
|
|
|
|
|
|
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
|
|
|
|
;login: The USENIX Magazine, February 2011:42-47.
|
2012-08-08 16:38:29 +00:00
|
|
|
parallel: Error: Parsing of --jobs/-j/--max-procs/-P failed.
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test of -j filename
|
2012-08-08 21:57:01 +00:00
|
|
|
sleep 6
|
|
|
|
sleep 8
|
|
|
|
sleep 10
|
|
|
|
sleep 5
|
|
|
|
sleep 4
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test ::::
|
|
|
|
### Change --arg-file-sep
|
|
|
|
1 5
|
|
|
|
2 6
|
|
|
|
3 7
|
|
|
|
4 8
|
|
|
|
5 9
|
|
|
|
6 10
|
|
|
|
7 11
|
|
|
|
8 12
|
|
|
|
9 13
|
|
|
|
10 14
|
2013-06-22 12:50:48 +00:00
|
|
|
1 15
|
2012-05-13 14:03:41 +00:00
|
|
|
1 5
|
|
|
|
2 6
|
|
|
|
3 7
|
|
|
|
4 8
|
|
|
|
5 9
|
|
|
|
6 10
|
|
|
|
7 11
|
|
|
|
8 12
|
|
|
|
9 13
|
|
|
|
10 14
|
2013-06-22 12:50:48 +00:00
|
|
|
1 15
|
2012-05-13 14:03:41 +00:00
|
|
|
1 5
|
|
|
|
2 6
|
|
|
|
3 7
|
|
|
|
4 8
|
|
|
|
5 9
|
|
|
|
6 10
|
|
|
|
7 11
|
|
|
|
8 12
|
|
|
|
9 13
|
|
|
|
10 14
|
2013-06-22 12:50:48 +00:00
|
|
|
1 15
|
2012-05-13 14:03:41 +00:00
|
|
|
1 5
|
|
|
|
2 6
|
|
|
|
3 7
|
|
|
|
4 8
|
|
|
|
5 9
|
|
|
|
6 10
|
|
|
|
7 11
|
|
|
|
8 12
|
|
|
|
9 13
|
|
|
|
10 14
|
2013-06-22 12:50:48 +00:00
|
|
|
1 15
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test xapply --max-replace-args
|
|
|
|
2 1 0
|
|
|
|
5 4 3
|
|
|
|
7 6
|
|
|
|
### Test -N
|
|
|
|
1 2 3
|
|
|
|
4 5
|
|
|
|
### Test -N with 0
|
|
|
|
0 1 2
|
|
|
|
3 4 5
|
|
|
|
6 7
|
|
|
|
### Test :::: on nonexistent
|
2012-08-08 16:38:29 +00:00
|
|
|
parallel: Error: Cannot open input file `nonexistent': No such file or directory.
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test :::: two files
|
|
|
|
1 5
|
|
|
|
2 6
|
|
|
|
3 7
|
|
|
|
4 8
|
|
|
|
5 9
|
|
|
|
6 10
|
|
|
|
7 11
|
|
|
|
8 12
|
|
|
|
9 13
|
|
|
|
10 14
|
2013-06-22 12:50:48 +00:00
|
|
|
1 15
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test -d, ::::
|
|
|
|
a1 5b
|
|
|
|
a2 6b
|
|
|
|
a3 7b
|
|
|
|
a
|
|
|
|
8
|
|
|
|
b
|
|
|
|
### Test -d, :::: one file too much
|
|
|
|
a1 5b
|
|
|
|
a2 6b
|
|
|
|
a3 7b
|
|
|
|
a
|
|
|
|
8
|
|
|
|
b
|
|
|
|
### Bug: did not quote
|
|
|
|
> b
|
|
|
|
### Quote test triplet 1
|
|
|
|
echo a
|
|
|
|
a
|
|
|
|
echo b
|
|
|
|
b
|
|
|
|
echo a
|
|
|
|
a
|
|
|
|
echo b
|
|
|
|
b
|
|
|
|
echo a
|
|
|
|
a
|
|
|
|
echo b
|
|
|
|
b
|
|
|
|
### Quote test triplet 2
|
|
|
|
echo echo\ a
|
|
|
|
echo a
|
|
|
|
echo echo\ b
|
|
|
|
echo b
|
|
|
|
echo echo\ a
|
|
|
|
echo a
|
|
|
|
echo echo\ b
|
|
|
|
echo b
|
|
|
|
echo echo\ a
|
|
|
|
echo a
|
|
|
|
echo echo\ b
|
|
|
|
echo b
|
|
|
|
### Quoting if there is a command and 2 arg files
|
|
|
|
echo echo\ a echo\ b
|
|
|
|
echo a echo b
|
|
|
|
### Quoting if there is a command and 2 arg files of uneven length
|
|
|
|
echo echo\ a echo\ b
|
|
|
|
echo a echo b
|
2013-06-22 12:50:48 +00:00
|
|
|
echo a1 echo\ b
|
|
|
|
a1 echo b
|
2012-05-13 14:03:41 +00:00
|
|
|
### Quoting if there is no command and 2 arg files
|
|
|
|
echo a echo b
|
|
|
|
a echo b
|
|
|
|
### Quoting if there is no command and 2 arg files of uneven length
|
|
|
|
echo a echo b
|
|
|
|
a echo b
|
2013-06-22 12:50:48 +00:00
|
|
|
echo a1 echo b
|
|
|
|
a1 echo b
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test multiple -a
|
|
|
|
echo b a
|
|
|
|
b a
|
|
|
|
echo b a
|
|
|
|
b a
|
|
|
|
### Multiple -a: An unused file
|
|
|
|
echo b a
|
|
|
|
b a
|
|
|
|
echo b a
|
|
|
|
b a
|
|
|
|
### Multiple -a: nonexistent
|
2012-08-08 16:38:29 +00:00
|
|
|
parallel: Error: Cannot open input file `nonexist': No such file or directory.
|
|
|
|
parallel: Error: Cannot open input file `nonexist': No such file or directory.
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test {#.}
|
|
|
|
echo c-ext b-withext a-noext
|
|
|
|
c-ext b-withext a-noext
|
|
|
|
### Tests that failed for OO-rewrite
|
|
|
|
1
|
|
|
|
2
|
|
|
|
3
|
|
|
|
4
|
|
|
|
5
|
|
|
|
6
|
|
|
|
7
|
|
|
|
8
|
|
|
|
9
|
|
|
|
10
|
|
|
|
done
|
|
|
|
a
|
|
|
|
a
|
|
|
|
a1b1^c1[.}c
|
|
|
|
### BUG: The length for -X is not close to max (131072)
|
|
|
|
1 12821 131060
|
|
|
|
### BUG: empty lines with --show-limit
|
|
|
|
Maximal size of command: 131071
|
|
|
|
Maximal used size of command: 131071
|
|
|
|
|
|
|
|
Execution of will continue now, and it will try to read its input
|
|
|
|
and run commands; if this is not what you wanted to happen, please
|
|
|
|
press CTRL-D or CTRL-C
|
|
|
|
### Test -N
|
|
|
|
1 2 3
|
|
|
|
4 5
|
|
|
|
### Test --arg-file-sep with files of different lengths
|
|
|
|
1 3
|
2013-06-22 12:50:48 +00:00
|
|
|
1 4
|
2012-05-13 14:03:41 +00:00
|
|
|
### Test respect -s
|
|
|
|
echo 1 22 333
|
|
|
|
1 22 333
|
|
|
|
echo 4444
|
|
|
|
4444
|
|
|
|
echo 55555
|
|
|
|
55555
|
|
|
|
echo 666666
|
|
|
|
666666
|
|
|
|
echo 7777777
|
|
|
|
7777777
|
|
|
|
echo 88888888
|
|
|
|
88888888
|
|
|
|
echo 999999999
|
|
|
|
999999999
|
|
|
|
### Test eof string after :::
|
|
|
|
foo
|
|
|
|
### Test -C and --trim rl
|
|
|
|
a_b_c_{4}
|
|
|
|
a_b_c_d
|
|
|
|
### Test empty input
|
|
|
|
### Test -m
|
|
|
|
1
|
|
|
|
2
|
|
|
|
### Test :::
|
|
|
|
1
|
|
|
|
### Test context_replace
|
|
|
|
'a'
|
|
|
|
### Test -N2 {2}
|
|
|
|
arg1:1 seq:1 arg2:2
|
|
|
|
arg1:3 seq:2 arg2:4
|
|
|
|
### Test -E (should only output foo ole)
|
|
|
|
foo ole
|
|
|
|
foo ole
|
|
|
|
### Test -r (should only output foo ole bar\nquux)
|
|
|
|
foo ole bar
|
|
|
|
quux
|
|
|
|
### Test of tab as colsep
|
|
|
|
abc def
|
|
|
|
ghi jkl
|
|
|
|
abc def
|
|
|
|
ghi jkl
|
|
|
|
### Test of -j filename with file content changing
|
|
|
|
sleep 3.3
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
2013-05-26 06:26:18 +00:00
|
|
|
sleep 1.5
|
|
|
|
sleep 1.5
|
|
|
|
sleep 1.5
|
|
|
|
sleep 1.5
|
2012-05-13 14:03:41 +00:00
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|
|
|
|
sleep 1
|