par_0_no_newline A single zero without \n should not be ignored par_0_no_newline 0 par_PARALLEL_ENV ### PARALLEL_ENV as variable par_PARALLEL_ENV OK as variable par_PARALLEL_ENV ### PARALLEL_ENV as file par_PARALLEL_ENV OK as file par_PARALLEL_ENV ### PARALLEL_ENV as fifo par_PARALLEL_ENV OK as fifo par_PARALLEL_HOME_not_exist ### bug #62311: --pipepart + ::: fail par_PARALLEL_HOME_not_exist OK par_PARALLEL_HOME_not_exist Should warn: par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME (/does-not-exist) does not exist. par_PARALLEL_HOME_not_exist parallel: Warning: Using ~/.parallel par_PARALLEL_HOME_not_exist should par_PARALLEL_HOME_not_exist warn par_PARALLEL_HOME_with_+ bug #59453: PARALLEL_HOME with plus sign causes error: config not readable par_PARALLEL_HOME_with_+ Parallel_home_with+ par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero par_X_eta_div_zero Computers / CPU cores / Max jobs to run par_X_eta_div_zero 0:local / 0 / 0 par_append_joblog ### can you append to a joblog using + par_append_joblog 1 par_append_joblog 1 par_append_joblog 3 par_argfile ### Test -a and --arg-file: Read input from file instead of stdin par_argfile 1 par_argfile 2 par_argfile 3 par_argfile 4 par_argfile 5 par_argfile 6 par_argfile 7 par_argfile 8 par_argfile 9 par_argfile 10 par_argfile 1 par_argfile 2 par_argfile 3 par_argfile 4 par_argfile 5 par_argfile 6 par_argfile 7 par_argfile 8 par_argfile 9 par_argfile 10 par_arguments_on_cmdline ### Test arguments on commandline par_arguments_on_cmdline args on cmdline par_arguments_on_cmdline args on cmdline par_basic_halt parallel: This job failed: par_basic_halt false par_basic_halt parallel: This job succeeded: par_basic_halt true par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'. par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail. par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail. par_blocking_redir 0 0 0 par_blocking_redir 0 0 0 par_blocking_redir 1 9 54 par_blocking_redir 3 3 6 par_blocking_redir Test stderr par_blocking_redir Test stdout par_blocking_redir bug #52740: Bash redirection with process substitution blocks par_blocking_redir stderr par_blocking_redir stderr par_blocking_redir stdout par_blocking_redir stdout par_colour_failed --colour-failed --colour par_colour_failed seq 1;exit 0 par_colour_failed 1 par_colour_failed seq 1;exit 1(B par_colour_failed 1(B par_colour_failed seq 1;exit 2(B par_colour_failed 1(B par_colour_failed seq 2;exit 0 par_colour_failed 1 par_colour_failed 2 par_colour_failed seq 2;exit 1(B par_colour_failed 1(B par_colour_failed 2(B par_colour_failed seq 2;exit 2(B par_colour_failed 1(B par_colour_failed 2(B par_colour_failed seq 1;exit 0(B par_colour_failed 1(B par_colour_failed seq 1;exit 1(B par_colour_failed 1(B par_colour_failed seq 1;exit 2(B par_colour_failed 1(B par_colour_failed seq 2;exit 0(B par_colour_failed 1(B par_colour_failed 2(B par_colour_failed seq 2;exit 1(B par_colour_failed 1(B par_colour_failed 2(B par_colour_failed seq 2;exit 2(B par_colour_failed 1(B par_colour_failed 2(B par_colsep_0 bug --colsep 0 par_colsep_0 OK par_colsep_0 OK par_colsep_default bug #37956: --colsep does not default to '\t' as specified in the man page. par_colsep_default one 1 par_compress_stdout_stderr ### Test compress - stdout par_compress_stdout_stderr OK par_compress_stdout_stderr ### Test compress - stderr par_compress_stdout_stderr ls: cannot access '/OK-if-missing-file': No such file or directory par_cr_newline_header ### --header : should set named replacement string if input line ends in \r\n par_cr_newline_header bar par_crnl ### Give a warning if input is DOS-ascii par_crnl parallel: Warning: The first three values end in CR-NL. Consider using -d "\r\n" par_crnl b par_crnl a par_crnl c par_crnl a par_crnl d par_crnl a par_crnl e par_crnl a par_crnl f par_crnl a par_crnl This should give no warning because -d is set par_crnl ba par_crnl ca par_crnl da par_crnl ea par_crnl fa par_crnl This should give no warning because line2 has newline only par_crnl b par_crnl a par_crnl ca par_crnl d par_crnl a par_crnl e par_crnl a par_crnl f par_crnl a par_csv col1"x3"-new par_csv line col2-new2 par_csv line col3-col 4 par_csv 2"x3" board-Value with ,-Column 3 par_csv_pipe Only pass full records to tail par_csv_pipe Too small block size par_csv_pipe parallel: Warning: A record was longer than 10000. Increasing to --blocksize 13001. par_csv_pipe parallel: Warning: A record was longer than 13001. Increasing to --blocksize 16903. par_csv_pipe 2000" par_csv_pipe 3000" par_csv_pipe 4000" par_csv_pipe 5000" par_csv_pipe 6000" par_csv_pipe 7000" par_csv_pipe 8000" par_csv_pipe 9000" par_csv_pipe 10000" par_csv_pipe 11000" par_csv_pipe More records in single block par_csv_pipe 9000" par_csv_pipe 11000" par_ctagstring ### --ctag --ctagstring should be different from --tag --tagstring par_ctagstring 8 par_ctagstring 37 par_ctagstring 10 par_ctagstring 39 par_delimiter ### Test --delimiter and -d: Delimiter instead of newline par_delimiter # Yes there is supposed to be an extra newline for -d N par_delimiter This is line 1 par_delimiter This is line 2 par_delimiter This is line 3 par_delimiter par_delimiter This is line 1 par_delimiter This is line 2 par_delimiter This is line 3 par_delimiter par_delimiter delimiter NUL line 1 par_delimiter line 2 par_delimiter line 3 par_delimiter delimiter TAB line 1 par_delimiter line 2 par_delimiter line 3 par_delimiter_space ### Does space as delimiter work? par_delimiter_space 1 par_delimiter_space done par_dirnamereplace ### Test --dnr par_dirnamereplace . a par_dirnamereplace a a/b par_dirnamereplace a/b a/b/c par_dirnamereplace ### Test --dirnamereplace par_dirnamereplace . a par_dirnamereplace a a/b par_dirnamereplace a/b a/b/c par_disk_full ### Disk full par_disk_full cat: write error: No space left on device par_disk_full parallel: Error: Output is incomplete. par_disk_full parallel: Error: Cannot append to buffer file in /mnt/ram. par_disk_full parallel: Error: Is the disk full? par_disk_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress. par_do_not_export_PARALLEL_ENV ### Do not export $PARALLEL_ENV to children par_do_not_export_PARALLEL_ENV Should be 0 par_do_not_export_PARALLEL_ENV 1 0 1 par_do_not_export_PARALLEL_ENV Should give 60k and not overflow par_do_not_export_PARALLEL_ENV 1 1 60001 par_dryrun_append_joblog --dry-run should not append to joblog par_dryrun_append_joblog 1 par_dryrun_append_joblog 2 par_dryrun_append_joblog 3 par_dryrun_append_joblog echo 1 par_dryrun_append_joblog echo 2 par_dryrun_append_joblog echo 3 par_dryrun_append_joblog echo 4 par_dryrun_append_joblog 4 par_echo_jobseq ### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2 par_echo_jobseq 1 par_echo_jobseq 2 par_echo_jobseq 3 par_echo_jobseq 4 par_empty bug #: par_empty true par_empty_command bug #54647: parset ignores empty lines par_empty_command par_empty_command Empty: par_empty_command B: B par_empty_input_on_stdin https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910470 par_empty_input_on_stdin This should give no output par_empty_line ### Test bug: empty line for | sh with -k par_empty_line a par_empty_line b par_empty_string_quote bug #37694: Empty string argument skipped when using --quote par_empty_string_quote 3 par_env_parallel_pipefail ### test env_parallel with pipefail + inherit_errexit par_env_parallel_pipefail OK par_exit_val ### Test bug #45619: "--halt" erroneous error exit code (should give 0) par_exit_val 0 par_exit_val ### Test exit val - true par_exit_val 0 par_exit_val ### Test exit val - false par_exit_val 1 par_expansion_in_colsep ### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty par_expansion_in_colsep AB par_extglob env_parallel par_file_ending_in_newline ### Hans found a bug giving unitialized variable par_file_ending_in_newline gzip /tmp/parallel_f1 par_file_ending_in_newline gzip '/tmp/parallel_f2 par_file_ending_in_newline ' par_fish ### https://github.com/fish-shell/fish-shell/issues/5582 par_fish OK par_group-by_colsep_space ### --colsep " " should work like "," par_group-by_colsep_space 1 2 5 par_group-by_colsep_space 2 2 10 par_group-by_colsep_space 1 1 6 par_group-by_colsep_space 1 2 5 par_group-by_colsep_space 2 4 10 par_group-by_colsep_space 1 3 6 par_halt_on_error_division_by_zero ### --halt-on-error soon,fail=100% with no input should not give division by zero par_halt_on_error_division_by_zero 0 par_halt_one_job # Halt soon if there is a single job par_halt_one_job should run 0 1 = job 1 2 par_halt_one_job 1 par_halt_one_job 2 par_halt_one_job parallel: This job failed: par_halt_one_job echo 2;exit 1 par_halt_one_job should run 1 = job 1 par_halt_one_job 1 par_halt_one_job parallel: This job failed: par_halt_one_job echo 1;exit 1 par_halt_one_job should run 0 1 = job 1 2 par_halt_one_job 1 par_halt_one_job 2 par_halt_one_job parallel: This job failed: par_halt_one_job echo 2;exit 1 par_halt_one_job should run 1 = job 1 par_halt_one_job 1 par_halt_one_job parallel: This job failed: par_halt_one_job echo 1;exit 1 par_hash_and_time_functions ### Functions for replacement string par_hash_and_time_functions 9999-99-99T99:99:99 9999-99-99T99:99 9999-99-99 99:99:99 99:99 99999999999999 999999999999 99999999 999999 9999 par_hash_and_time_functions XxX par_help ### Test --help and -h: Help output (just check we get the same amount of lines) par_help Output from -h and --help par_help 37 par_help 37 par_i_t ### Test -i par_i_t replace par_i_t ### Test --replace par_i_t replace par_i_t ### Test -t par_i_t echo bar par_i_t echo car par_i_t echo far par_i_t ### Test --verbose par_i_t echo bar par_i_t echo car par_i_t echo far par_inefficient_L bug #37325: Inefficiency of --pipe -L par_inefficient_L 276 276 996 par_inefficient_L FOO par_inefficient_L 248 248 992 par_inefficient_L FOO par_inefficient_L 248 248 992 par_inefficient_L FOO par_inefficient_L 244 244 993 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 200 200 1000 par_inefficient_L FOO par_inefficient_L 184 184 920 par_inefficient_L FOO par_japanese_chars_in_replacement_string ### bug #43817: Some JP char cause problems in positional replacement strings par_japanese_chars_in_replacement_string �<�> par_japanese_chars_in_replacement_string �<1 $_=2�> par_japanese_chars_in_replacement_string ワ par_japanese_chars_in_replacement_string �<�> par_japanese_chars_in_replacement_string �<1 $_=2�> par_japanese_chars_in_replacement_string ワ par_japanese_chars_in_replacement_string �<�> �<1 $_=2�> ワ par_japanese_chars_in_replacement_string �<�> par_jobslot_jobnumber_pipe ### Test bug #43376: {%} and {#} with --pipe par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\"","\"" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": "" } par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\"","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": "" } par_l0_is_l1 ### Because of --tollef -l, then -l0 == -l1, sorry par_l0_is_l1 l0 1 par_l0_is_l1 l0 2 par_linebuffer_files ### bug #48658: --linebuffer --files par_linebuffer_files 10 par_link_files_as_only_arg bug #50685: single ::::+ does not work par_link_files_as_only_arg 1 1 1 par_link_files_as_only_arg 2 2 2 par_link_files_as_only_arg 3 3 3 par_locale_quoting ### quoting in different locales par_locale_quoting `/tmp/test` par_locale_quoting $LC_ALL `/tmp/test` par_locale_quoting echo $LC_ALL '`/tmp/test`' par_locale_quoting zh_HK.big5hkscs `/tmp/test` par_long_cmd_mem_use ### Test long commands do not take up all memory par_long_cmd_mem_use 1 par_long_cmd_mem_use 10 par_long_cmd_mem_use 100 par_long_cmd_mem_use 11 par_long_cmd_mem_use 12 par_long_cmd_mem_use 13 par_long_cmd_mem_use 14 par_long_cmd_mem_use 15 par_long_cmd_mem_use 16 par_long_cmd_mem_use 17 par_long_cmd_mem_use 18 par_long_cmd_mem_use 19 par_long_cmd_mem_use 2 par_long_cmd_mem_use 20 par_long_cmd_mem_use 21 par_long_cmd_mem_use 22 par_long_cmd_mem_use 23 par_long_cmd_mem_use 24 par_long_cmd_mem_use 25 par_long_cmd_mem_use 26 par_long_cmd_mem_use 27 par_long_cmd_mem_use 28 par_long_cmd_mem_use 29 par_long_cmd_mem_use 3 par_long_cmd_mem_use 30 par_long_cmd_mem_use 31 par_long_cmd_mem_use 32 par_long_cmd_mem_use 33 par_long_cmd_mem_use 34 par_long_cmd_mem_use 35 par_long_cmd_mem_use 36 par_long_cmd_mem_use 37 par_long_cmd_mem_use 38 par_long_cmd_mem_use 39 par_long_cmd_mem_use 4 par_long_cmd_mem_use 40 par_long_cmd_mem_use 41 par_long_cmd_mem_use 42 par_long_cmd_mem_use 43 par_long_cmd_mem_use 44 par_long_cmd_mem_use 45 par_long_cmd_mem_use 46 par_long_cmd_mem_use 47 par_long_cmd_mem_use 48 par_long_cmd_mem_use 49 par_long_cmd_mem_use 5 par_long_cmd_mem_use 50 par_long_cmd_mem_use 51 par_long_cmd_mem_use 52 par_long_cmd_mem_use 53 par_long_cmd_mem_use 54 par_long_cmd_mem_use 55 par_long_cmd_mem_use 56 par_long_cmd_mem_use 57 par_long_cmd_mem_use 58 par_long_cmd_mem_use 59 par_long_cmd_mem_use 6 par_long_cmd_mem_use 60 par_long_cmd_mem_use 61 par_long_cmd_mem_use 62 par_long_cmd_mem_use 63 par_long_cmd_mem_use 64 par_long_cmd_mem_use 65 par_long_cmd_mem_use 66 par_long_cmd_mem_use 67 par_long_cmd_mem_use 68 par_long_cmd_mem_use 69 par_long_cmd_mem_use 7 par_long_cmd_mem_use 70 par_long_cmd_mem_use 71 par_long_cmd_mem_use 72 par_long_cmd_mem_use 73 par_long_cmd_mem_use 74 par_long_cmd_mem_use 75 par_long_cmd_mem_use 76 par_long_cmd_mem_use 77 par_long_cmd_mem_use 78 par_long_cmd_mem_use 79 par_long_cmd_mem_use 8 par_long_cmd_mem_use 80 par_long_cmd_mem_use 81 par_long_cmd_mem_use 82 par_long_cmd_mem_use 83 par_long_cmd_mem_use 84 par_long_cmd_mem_use 85 par_long_cmd_mem_use 86 par_long_cmd_mem_use 87 par_long_cmd_mem_use 88 par_long_cmd_mem_use 89 par_long_cmd_mem_use 9 par_long_cmd_mem_use 90 par_long_cmd_mem_use 91 par_long_cmd_mem_use 92 par_long_cmd_mem_use 93 par_long_cmd_mem_use 94 par_long_cmd_mem_use 95 par_long_cmd_mem_use 96 par_long_cmd_mem_use 97 par_long_cmd_mem_use 98 par_long_cmd_mem_use 99 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 1 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 10 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 100 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 11 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 12 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 13 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 14 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 15 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 16 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 17 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 18 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 19 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 2 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 20 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 21 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 22 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 23 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 24 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 25 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 26 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 27 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 28 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 29 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 3 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 30 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 31 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 32 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 33 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 34 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 35 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 36 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 37 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 38 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 39 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 4 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 40 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 41 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 42 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 43 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 44 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 45 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 46 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 47 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 48 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 49 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 5 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 50 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 51 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 52 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 53 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 54 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 55 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 56 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 57 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 58 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 59 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 6 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 60 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 61 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 62 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 63 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 64 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 65 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 66 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 67 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 68 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 69 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 7 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 70 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 71 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 72 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 73 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 74 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 75 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 76 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 77 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 78 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 79 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 8 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 80 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 81 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 82 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 83 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 84 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 85 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 86 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 87 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 88 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 89 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 9 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 90 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 91 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 92 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 93 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 94 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 95 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 96 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 97 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 98 par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 99 par_maxchar_s ### Test --max-chars and -s: Max number of chars in a line par_maxchar_s line 1 line 1 par_maxchar_s line 2 par_maxchar_s line 1 line 1 par_maxchar_s line 2 par_maxproc ### Test --max-procs and -P: Number of processes par_maxproc max proc 1 par_maxproc max proc 2 par_maxproc max proc 3 par_maxproc max proc 4 par_maxproc max proc 5 par_maxproc max proc 6 par_maxproc max proc 7 par_maxproc max proc 8 par_maxproc max proc 9 par_maxproc max proc 10 par_maxproc 200% proc 1 par_maxproc 200% proc 2 par_maxproc 200% proc 3 par_maxproc 200% proc 4 par_maxproc 200% proc 5 par_maxproc 200% proc 6 par_maxproc 200% proc 7 par_maxproc 200% proc 8 par_maxproc 200% proc 9 par_maxproc 200% proc 10 par_negative_replacement ### Negative replacement strings par_negative_replacement correct par_negative_replacement correct par_negative_replacement 2 + 4 = 2 + 4= 6 par_negative_replacement correct par_newline_in_command Command with newline and positional replacement strings par_newline_in_command O K par_nice_locally ### Test --nice locally par_nice_locally PAR=a bash -c "echo \$PAR b" par_nice_locally a b par_no_command_given ### Test bugfix if no command given par_no_command_given 1 2 par_no_command_given /bin/bash: line 1: 3: command not found par_no_command_given parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... par_no_joblog_with_dryrun bug #46016: --joblog should not log when --dryrun par_no_joblog_with_dryrun echo Only_this par_no_run_if_empty ### Test --no-run-if-empty and -r: This should give no output par_open-tty ### bug #62310: xargs compatibility: --open-tty par_open-tty /dev/tty par_open-tty /dev/tty par_opt_gnu ### Test --tollef par_opt_gnu parallel: Error: --tollef has been retired. par_opt_gnu parallel: Error: Remove --tollef or use --gnu to override --tollef. par_opt_gnu ### Test --tollef --gnu par_opt_gnu 1 par_opt_gnu 2 par_opt_gnu 3 par_opt_gnu -- par_opt_gnu a par_opt_gnu b par_opt_gnu c par_opt_gnu ### Test --gnu par_opt_gnu 1 par_opt_gnu 2 par_opt_gnu 3 par_opt_gnu -- par_opt_gnu a par_opt_gnu b par_opt_gnu c par_parcat_args_stdin bug #51690: parcat: read args from stdin par_parcat_args_stdin OK1 par_parcat_args_stdin OK2 par_parcat_rm bug #51691: parcat --rm remove fifo when opened par_parcat_rm OK1 par_parcat_rm OK file removed par_parset_tee 1 3440 3440 16910 par_parset_tee 5 3439 3439 16904 par_perlexpr_with_newline Perl expression spanning 2 lines par_pipe_N1_regexp bug #55131: --regexp --recstart hangs par_pipe_N1_regexp These should give the same par_pipe_N1_regexp JOB1 par_pipe_N1_regexp begin par_pipe_N1_regexp end par_pipe_N1_regexp END par_pipe_N1_regexp JOB2 par_pipe_N1_regexp begin par_pipe_N1_regexp aend par_pipe_N1_regexp END par_pipe_N1_regexp JOB3 par_pipe_N1_regexp begin par_pipe_N1_regexp bend par_pipe_N1_regexp END par_pipe_N1_regexp JOB4 par_pipe_N1_regexp begin par_pipe_N1_regexp cend par_pipe_N1_regexp END par_pipe_N1_regexp JOB1 par_pipe_N1_regexp begin par_pipe_N1_regexp end par_pipe_N1_regexp END par_pipe_N1_regexp JOB2 par_pipe_N1_regexp begin par_pipe_N1_regexp aend par_pipe_N1_regexp END par_pipe_N1_regexp JOB3 par_pipe_N1_regexp begin par_pipe_N1_regexp bend par_pipe_N1_regexp END par_pipe_N1_regexp JOB4 par_pipe_N1_regexp begin par_pipe_N1_regexp cend par_pipe_N1_regexp END par_pipe_float_blocksize ### Test --block <> par_pipe_float_blocksize 1 1 2 par_pipe_float_blocksize 1 1 2 par_pipe_float_blocksize 1 1 2 par_pipe_float_blocksize 1 1 2 par_pipe_float_blocksize 1 1 2 par_pipe_no_command ### --pipe without command par_pipe_no_command parallel: Error: --pipe/--pipepart must have a command to pipe into (e.g. 'cat'). par_pipe_recend bug #54328: --pipe --recend blocks par_pipe_recend 00000000: 31 1 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 32 2 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 33 3 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 31 1 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 32 2 par_pipe_recend 00000000: 0a . par_pipe_recend 00000000: 33 3 par_pipe_recend 00000000: 0a . par_pipe_record_size_in_lines bug #34958: --pipe with record size measured in lines par_pipe_record_size_in_lines 1 par_pipe_record_size_in_lines 2 par_pipe_record_size_in_lines 3 par_pipe_record_size_in_lines 4 par_pipe_record_size_in_lines 5 par_pipe_record_size_in_lines 6 par_pipe_record_size_in_lines 7 par_pipe_record_size_in_lines 8 par_pipe_record_size_in_lines bug 34958-1 par_pipe_record_size_in_lines 9 par_pipe_record_size_in_lines 10 par_pipe_record_size_in_lines bug 34958-1 par_pipe_record_size_in_lines 1 par_pipe_record_size_in_lines 2 par_pipe_record_size_in_lines 3 par_pipe_record_size_in_lines 4 par_pipe_record_size_in_lines 5 par_pipe_record_size_in_lines 6 par_pipe_record_size_in_lines 7 par_pipe_record_size_in_lines 8 par_pipe_record_size_in_lines bug 34958-2 par_pipe_record_size_in_lines 9 par_pipe_record_size_in_lines 10 par_pipe_record_size_in_lines bug 34958-2 par_pipe_tag_v pipe with --tag -v par_pipe_tag_v foo cat par_pipe_tag_v foo 1 par_pipe_tag_v foo 2 par_pipe_tag_v foo 3 par_pipe_tag_v foo /tmp/tmpfile.par par_pipe_to_func ### bug #45998: --pipe to function broken par_pipe_to_func 1 par_pipe_to_func pipefunc OK par_pipe_to_func 1 par_pipe_to_func pipefunc and more OK par_pipe_to_func and more OK par_pipe_unneeded_procs ### Test bug #34241: --pipe should not spawn unneeded processes par_pipe_unneeded_procs 1 par_pipe_unneeded_procs 2 par_pipe_unneeded_procs 3 par_pipe_unneeded_procs o par_pipepart_block_bigger_2G ### Test that --pipepart can have blocks > 2GB par_pipepart_block_bigger_2G 1 1 4 par_pipepart_header ### bug #44614: --pipepart --header off by one par_pipepart_header foo par_pipepart_header 1 par_pipepart_header 2 par_pipepart_header 3 par_pipepart_header foo par_pipepart_header 4 par_pipepart_header 5 par_pipepart_header 6 par_pipepart_header foo par_pipepart_header 7 par_pipepart_header 8 par_pipepart_header 9 par_pipepart_header foo par_pipepart_header 10 par_pipepart_header foo par_pipepart_header 1 par_pipepart_header 2 par_pipepart_header 3 par_pipepart_header foo par_pipepart_header 4 par_pipepart_header 5 par_pipepart_header 6 par_pipepart_header 7 par_pipepart_header 8 par_pipepart_header 9 par_pipepart_header 10 par_pipepart_recend_recstart bug #52343: --recend/--recstart does wrong thing with --pipepart par_pipepart_recend_recstart a par_pipepart_recend_recstart 1 par_pipepart_recend_recstart 2 par_pipepart_recend_recstart 3 par_pipepart_recend_recstart 4 par_pipepart_recend_recstart 5 par_pipepart_recend_recstart a par_pipepart_recend_recstart 6 par_pipepart_recend_recstart 7 par_pipepart_recend_recstart 8 par_pipepart_recend_recstart 9 par_pipepart_recend_recstart 10 par_pipepart_recend_recstart parallel: Warning: A record was longer than 1. Increasing to --blocksize 3. par_pipepart_recend_recstart parallel: Warning: A record was longer than 3. Increasing to --blocksize 5. par_pipepart_recend_recstart parallel: Warning: A record was longer than 5. Increasing to --blocksize 8. par_pipepart_recend_recstart parallel: Warning: A record was longer than 8. Increasing to --blocksize 12. par_pipepart_recend_recstart a par_pipepart_recend_recstart 1 par_pipepart_recend_recstart 2 par_pipepart_recend_recstart 3 par_pipepart_recend_recstart 4 par_pipepart_recend_recstart 5 par_pipepart_recend_recstart a par_pipepart_recend_recstart 6 par_pipepart_recend_recstart 7 par_pipepart_recend_recstart 8 par_pipepart_recend_recstart 9 par_pipepart_recend_recstart 10 par_pipepart_roundrobin ### bug #45769: --round-robin --pipepart gives wrong results par_pipepart_roundrobin 2 par_pipepart_triple_colon ### bug #62311: --pipepart + ::: fail par_pipepart_triple_colon 1 1 2 par_pipepart_triple_colon 1 1 2 par_pipepart_triple_colon 1 1 2 par_profile ### Test -J profile, -J /dir/profile, -J ./profile par_profile local local par_profile abs abs par_profile config config par_python_children ### bug #49970: Python child process dies if --env is used par_quote ### Test -q par_quote a b par_quote h i par_quote ### Test -q {#} par_quote 1 par_quote 2 par_quote 1 par_quote 2 par_quote {\#} a par_quote {\#} b par_read_from_stdin ### Test empty line as input par_read_from_stdin empty input line par_read_from_stdin ### Tests if (cat | sh) works par_read_from_stdin a 1 par_read_from_stdin a 10 par_read_from_stdin a 11 par_read_from_stdin a 12 par_read_from_stdin a 13 par_read_from_stdin a 14 par_read_from_stdin a 15 par_read_from_stdin a 16 par_read_from_stdin a 17 par_read_from_stdin a 18 par_read_from_stdin a 19 par_read_from_stdin a 2 par_read_from_stdin a 20 par_read_from_stdin a 21 par_read_from_stdin a 22 par_read_from_stdin a 23 par_read_from_stdin a 24 par_read_from_stdin a 25 par_read_from_stdin a 3 par_read_from_stdin a 4 par_read_from_stdin a 5 par_read_from_stdin a 6 par_read_from_stdin a 7 par_read_from_stdin a 8 par_read_from_stdin a 9 par_read_from_stdin b 1 par_read_from_stdin b 10 par_read_from_stdin b 11 par_read_from_stdin b 12 par_read_from_stdin b 13 par_read_from_stdin b 14 par_read_from_stdin b 15 par_read_from_stdin b 16 par_read_from_stdin b 17 par_read_from_stdin b 18 par_read_from_stdin b 19 par_read_from_stdin b 2 par_read_from_stdin b 20 par_read_from_stdin b 21 par_read_from_stdin b 22 par_read_from_stdin b 23 par_read_from_stdin b 24 par_read_from_stdin b 25 par_read_from_stdin b 3 par_read_from_stdin b 4 par_read_from_stdin b 5 par_read_from_stdin b 6 par_read_from_stdin b 7 par_read_from_stdin b 8 par_read_from_stdin b 9 par_read_from_stdin ### Test if xargs-mode works par_read_from_stdin a 1 par_read_from_stdin a 10 par_read_from_stdin a 11 par_read_from_stdin a 12 par_read_from_stdin a 13 par_read_from_stdin a 14 par_read_from_stdin a 15 par_read_from_stdin a 16 par_read_from_stdin a 17 par_read_from_stdin a 18 par_read_from_stdin a 19 par_read_from_stdin a 2 par_read_from_stdin a 20 par_read_from_stdin a 21 par_read_from_stdin a 22 par_read_from_stdin a 23 par_read_from_stdin a 24 par_read_from_stdin a 25 par_read_from_stdin a 3 par_read_from_stdin a 4 par_read_from_stdin a 5 par_read_from_stdin a 6 par_read_from_stdin a 7 par_read_from_stdin a 8 par_read_from_stdin a 9 par_read_from_stdin b 1 par_read_from_stdin b 10 par_read_from_stdin b 11 par_read_from_stdin b 12 par_read_from_stdin b 13 par_read_from_stdin b 14 par_read_from_stdin b 15 par_read_from_stdin b 16 par_read_from_stdin b 17 par_read_from_stdin b 18 par_read_from_stdin b 19 par_read_from_stdin b 2 par_read_from_stdin b 20 par_read_from_stdin b 21 par_read_from_stdin b 22 par_read_from_stdin b 23 par_read_from_stdin b 24 par_read_from_stdin b 25 par_read_from_stdin b 3 par_read_from_stdin b 4 par_read_from_stdin b 5 par_read_from_stdin b 6 par_read_from_stdin b 7 par_read_from_stdin b 8 par_read_from_stdin b 9 par_recend_not_regexp ### bug #56558: --rrs with --recend that is not regexp par_recend_not_regexp aend par_recend_not_regexp b par_recend_not_regexp end par_regexp_chars_in_template ### Test regexp chars in template par_regexp_chars_in_template a1b1^c1[.}c a2b2^c2[.}c a3b3^c3[.}c a4b4^c4[.}c a5b5^c5[.}c a6b6^c6[.}c par_replace_replacementstring ### Test replace {} par_replace_replacementstring replace curlies par_replace_replacementstring replace curlies par_replacement_string_as_part_of_command ### {} as part of the command par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls par_replacement_string_as_part_of_command /bin/ls par_replacement_string_on_utf8 ### test {} {.} on UTF8 input par_replacement_string_on_utf8 中国 (Zhōngguó)/China's (中国) road.jpg 中国 (Zhōngguó)/China's (中国) road par_replacement_string_on_utf8 中国.(中国) 中国 par_replacement_string_on_utf8 /tmp/test-of-{.}-parallel/subdir/file /tmp/test-of-{.}-parallel/subdir/file par_replacement_string_on_utf8 /tmp/test-of-{.}-parallel/subdir/file{.}.funkyextension}} /tmp/test-of-{.}-parallel/subdir/file{.} par_results ### --results test.csv par_results a par_results b par_results c par_results_arg_256 ### bug #42089: --results with arg > 256 chars (should be 1 char shorter) par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 par_results_arg_256 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 par_results_json ### --results test.json par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" } par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" } par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" } par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" } par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" } par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" } par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" } par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" } par_resume_k ### --resume -k par_resume_k job0id par_resume_k job1id par_resume_k job2id par_resume_k job3id par_resume_k job0id par_resume_k job5id par_resume_k try 2 = nothing par_resume_k two extra par_resume_k job6id par_resume_k job7id par_retries_replacement_string 11 par_retries_replacement_string 22 par_retries_replacement_string 22 par_retries_replacement_string 33 par_retries_replacement_string 33 par_retries_replacement_string 33 par_roundrobin_k ### Test -k --round-robin par_roundrobin_k 315464 315464 2097143 par_roundrobin_k 299592 299592 2097144 par_roundrobin_k 235148 235148 1646037 par_roundrobin_k 149796 149796 1048572 par_rpl_repeats ### Test {.} does not repeat more than {} par_rpl_repeats a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6 par_rpl_repeats a7.gifb7c7 a8.gifb8c8 a9.gifb9c9 a10.gifb10c10 a11.gifb11c11 a12.gifb12c12 par_rpl_repeats a13.gifb13c13 a14.gifb14c14 a15.gifb15c15 par_rpl_repeats a1.gif 2.gif 3.gif 4.gif 5.gif 6.gif 7.gifb1 2 3 4 5 6 7c1 2 3 4 5 6 7 par_rpl_repeats a8.gif 9.gif 10.gif 11.gif 12.gif 13.gifb8 9 10 11 12 13c8 9 10 11 12 13 par_rpl_repeats a14.gif 15.gifb14 15c14 15 par_rpl_that_is_substring_of_longer_rpl ### --rpl % that is a substring of longer --rpl %D par_rpl_that_is_substring_of_longer_rpl a.b/c.d/e.f=a.b/c.d/e.f par_rpl_that_is_substring_of_longer_rpl a.b/c.d=a.b/c.d par_rpl_that_is_substring_of_longer_rpl e=e par_rpl_that_is_substring_of_longer_rpl f=f par_rpl_that_is_substring_of_longer_rpl a.b/c.d/e.f=a.b/c.d/e.f par_sem_quote ### sem --quote should not add empty argument par_sem_quote echo par_sem_quote par_shellcompletion ### --shellcompletion par_shellcompletion 863f31c091219fc53dc89fd707f5995b - par_shellcompletion 863f31c091219fc53dc89fd707f5995b - par_shellcompletion 88a69a99c93b79b5ed6491c80e9762b0 - par_shellcompletion 88a69a99c93b79b5ed6491c80e9762b0 - par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks par_slow_pipe_regexp This should take a few ms, but took more than 2 hours par_slow_pipe_regexp 0 1 1 par_slow_pipe_regexp 980 981 5880 par_slow_pipe_regexp 25021 25021 150125 par_slow_pipe_regexp ### These should give same output par_slow_pipe_regexp 6e72d7f86f6a423b9a7fa97630587815 - par_slow_pipe_regexp 6e72d7f86f6a423b9a7fa97630587815 - par_space_envvar ### bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu' par_space_envvar echo 'space in envvar OK' par_space_envvar space in envvar OK par_tagstring_pipe bug #50228: --pipe --tagstring broken par_tagstring_pipe 1 1000 1000 3893 par_tagstring_pipe 2 1000 1000 5000 par_tagstring_pipe 3 1000 1000 5000 par_tagstring_with_d bug #47002: --tagstring with -d \n\n par_tagstring_with_d 1 ABC par_tagstring_with_d 1 1 par_tagstring_with_d 1 2 par_tagstring_with_d 1 3 par_tagstring_with_d 2 ABC par_tagstring_with_d 2 1 par_tagstring_with_d 2 2 par_tagstring_with_d 2 3 par_tagstring_with_d 2 4 par_tagstring_with_d 2 par_tee 1 a 1 par_tee 1 a 1000000 1000000 6888896 par_tee 1 b 2 par_tee 1 b 1000000 1000000 6888896 par_tee 2 a 3 par_tee 2 a 1000000 1000000 6888896 par_tee 2 b 4 par_tee 2 b 1000000 1000000 6888896 par_tee 3 a 5 par_tee 3 a 1000000 1000000 6888896 par_tee 3 b 6 par_tee 3 b 1000000 1000000 6888896 par_tee 4 a 7 par_tee 4 a 1000000 1000000 6888896 par_tee 4 b 8 par_tee 4 b 1000000 1000000 6888896 par_tee 5 a 9 par_tee 5 a 1000000 1000000 6888896 par_tee 5 b 10 par_tee 5 b 1000000 1000000 6888896 par_tee 1 -l 181902 par_tee 1 -c 1228633 par_tee 2 -l 181902 par_tee 2 -c 1228633 par_tee 3 -l 122854 par_tee 3 -c 815297 par_tee 4 -l 122853 par_tee 4 -c 815290 par_tee 5 -l 122853 par_tee 5 -c 815290 par_test_L_context_replace ### Test -N context replace par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b par_test_L_context_replace ### Test -L context replace par_test_L_context_replace a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b par_test_L_context_replace a11b a12b a13b a14b a15b a16b a17b a18b a19b par_test_m_X ### Test -m vs -X par_test_m_X 1foo bar joe.gif2foo bar joe3 Afoo bar joeBfoo bar joeC par_test_m_X 1foo2foo3 1bar2bar3 1joe.gif2joe3 AfooBfooC AbarBbarC AjoeBjoeC par_test_m_X a1.gif 2.gif 3.gif 4.gif 5.gif 6.gifb1 2 3 4 5 6c1 2 3 4 5 6 par_test_m_X a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6 par_test_m_X ### Test -q {.} par_test_m_X 'a' par_test_m_X 'a' par_test_r_with_pipe ### Test of -r with --pipe - the first should give an empty line. The second should not. par_test_r_with_pipe 1 par_test_r_with_pipe 0 par_test_tty ### Test --tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_tty /dev/tty par_test_zero_args ### Test 0-arguments par_test_zero_args n0 par_test_zero_args n0 par_test_zero_args L0 par_test_zero_args L0 par_test_zero_args N0 par_test_zero_args N0 par_testquote ash "#&/ par_testquote ash ()*=?' par_testquote bash "#&/ par_testquote bash ()*=?' par_testquote csh "#&/ par_testquote csh ()*=?' par_testquote dash "#&/ par_testquote dash ()*=?' par_testquote fdsh "#&/ par_testquote fdsh ()*=?' par_testquote fish "#&/ par_testquote fish ()*=?' par_testquote fizsh "#&/ par_testquote fizsh ()*=?' par_testquote ksh "#&/ par_testquote ksh ()*=?' par_testquote ksh93 "#&/ par_testquote ksh93 ()*=?' par_testquote mksh "#&/ par_testquote mksh ()*=?' par_testquote posh "#&/ par_testquote posh ()*=?' par_testquote rbash "#&/ par_testquote rbash ()*=?' par_testquote rc "#&/ par_testquote rc ()*=?' par_testquote rzsh "#&/ par_testquote rzsh ()*=?' par_testquote sash -f parallel: Error: Shell 'sash -f' not found. par_testquote sh "#&/ par_testquote sh ()*=?' par_testquote static-sh "#&/ par_testquote static-sh ()*=?' par_testquote tcsh "#&/ par_testquote tcsh ()*=?' par_testquote yash "#&/ par_testquote yash ()*=?' par_testquote zsh "#&/ par_testquote zsh ()*=?' par_tmpl1 1.t1 /tmp/tmpl-1.1-111.111.t2 par_tmpl1 Template1 par_tmpl1 Xval: 1.1 par_tmpl1 Yval: 111.111 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 1 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 1.10 par_tmpl1 TenX: 11 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 1.1,111.111 par_tmpl1 val1,val2: 1.1,111.111 par_tmpl1 par_tmpl1 2.t1 /tmp/tmpl-1.1-222.222.t2 par_tmpl1 Template1 par_tmpl1 Xval: 1.1 par_tmpl1 Yval: 222.222 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 2 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 1.10 par_tmpl1 TenX: 11 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 1.1,222.222 par_tmpl1 val1,val2: 1.1,222.222 par_tmpl1 par_tmpl1 3.t1 /tmp/tmpl-1.1-333.333.t2 par_tmpl1 Template1 par_tmpl1 Xval: 1.1 par_tmpl1 Yval: 333.333 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 3 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 1.10 par_tmpl1 TenX: 11 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 1.1,333.333 par_tmpl1 val1,val2: 1.1,333.333 par_tmpl1 par_tmpl1 4.t1 /tmp/tmpl-2.22-111.111.t2 par_tmpl1 Template1 par_tmpl1 Xval: 2.22 par_tmpl1 Yval: 111.111 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 4 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 2.22 par_tmpl1 TenX: 22.2 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 2.22,111.111 par_tmpl1 val1,val2: 2.22,111.111 par_tmpl1 par_tmpl1 5.t1 /tmp/tmpl-2.22-222.222.t2 par_tmpl1 Template1 par_tmpl1 Xval: 2.22 par_tmpl1 Yval: 222.222 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 5 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 2.22 par_tmpl1 TenX: 22.2 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 2.22,222.222 par_tmpl1 val1,val2: 2.22,222.222 par_tmpl1 par_tmpl1 6.t1 /tmp/tmpl-2.22-333.333.t2 par_tmpl1 Template1 par_tmpl1 Xval: 2.22 par_tmpl1 Yval: 333.333 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 6 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 2.22 par_tmpl1 TenX: 22.2 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 2.22,333.333 par_tmpl1 val1,val2: 2.22,333.333 par_tmpl1 par_tmpl1 7.t1 /tmp/tmpl-3.333-111.111.t2 par_tmpl1 Template1 par_tmpl1 Xval: 3.333 par_tmpl1 Yval: 111.111 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 7 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 3.33 par_tmpl1 TenX: 33.33 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 3.333,111.111 par_tmpl1 val1,val2: 3.333,111.111 par_tmpl1 par_tmpl1 8.t1 /tmp/tmpl-3.333-222.222.t2 par_tmpl1 Template1 par_tmpl1 Xval: 3.333 par_tmpl1 Yval: 222.222 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 8 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 3.33 par_tmpl1 TenX: 33.33 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 3.333,222.222 par_tmpl1 val1,val2: 3.333,222.222 par_tmpl1 par_tmpl1 9.t1 /tmp/tmpl-3.333-333.333.t2 par_tmpl1 Template1 par_tmpl1 Xval: 3.333 par_tmpl1 Yval: 333.333 par_tmpl1 FixedValue: 9 par_tmpl1 Seq: 9 par_tmpl1 Slot: X par_tmpl1 # x with 2 decimals par_tmpl1 DecimalX: 3.33 par_tmpl1 TenX: 33.33 par_tmpl1 RandomVal: 0.RANDOM_NUMBER par_tmpl1 par_tmpl1 Template2 par_tmpl1 X,Y: 3.333,333.333 par_tmpl1 val1,val2: 3.333,333.333 par_tmpl1 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:1 Slot:1 All:1a Arg[1]:1 Arg[-1]:a Perl(1a+4):54 par_tmpl2 2: Job:1 Slot:1 All:1a Arg[1]:1 Arg[-1]:a Perl(1a+4):54 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:2 Slot:2 All:1b Arg[1]:1 Arg[-1]:b Perl(1b+4):54 par_tmpl2 2: Job:2 Slot:2 All:1b Arg[1]:1 Arg[-1]:b Perl(1b+4):54 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:3 Slot:1 All:2a Arg[1]:2 Arg[-1]:a Perl(2a+4):64 par_tmpl2 2: Job:3 Slot:1 All:2a Arg[1]:2 Arg[-1]:a Perl(2a+4):64 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:4 Slot:2 All:2b Arg[1]:2 Arg[-1]:b Perl(2b+4):64 par_tmpl2 2: Job:4 Slot:2 All:2b Arg[1]:2 Arg[-1]:b Perl(2b+4):64 par_tmpl2 should give no files par_tmpl2 ls: cannot access 't[12].*': No such file or directory par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:1 Slot:1 All:1a Arg[1]:1 Arg[-1]:a Perl(1a+4):54 par_tmpl2 2: Job:1 Slot:1 All:1a Arg[1]:1 Arg[-1]:a Perl(1a+4):54 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:2 Slot:2 All:1b Arg[1]:1 Arg[-1]:b Perl(1b+4):54 par_tmpl2 2: Job:2 Slot:2 All:1b Arg[1]:1 Arg[-1]:b Perl(1b+4):54 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:3 Slot:1 All:2a Arg[1]:2 Arg[-1]:a Perl(2a+4):64 par_tmpl2 2: Job:3 Slot:1 All:2a Arg[1]:2 Arg[-1]:a Perl(2a+4):64 par_tmpl2 === Start tmpl1 === par_tmpl2 1: Job:4 Slot:2 All:2b Arg[1]:2 Arg[-1]:b Perl(2b+4):64 par_tmpl2 2: Job:4 Slot:2 All:2b Arg[1]:2 Arg[-1]:b Perl(2b+4):64 par_tmpl2 should give no files par_tmpl2 ls: cannot access 't[12].*': No such file or directory par_tmux_command_not_found ### PARALLEL_TMUX not found par_tmux_command_not_found parallel: Error: not-existing not found in $PATH. par_total_from_joblog bug #47086: [PATCH] Initialize total_completed from joblog par_total_from_joblog 0 par_total_from_joblog 1 par_total_from_joblog 2 par_total_from_joblog 3 par_total_from_joblog parallel: This job failed: par_total_from_joblog echo 3;exit 1 par_total_from_joblog 4 par_total_from_joblog 5 par_tricolonplus ### bug #48745: :::+ bug par_tricolonplus 11 1 21 a aa par_tricolonplus 11 1 21 b bb par_tricolonplus 11 1 21 c cc par_tricolonplus 22 2 22 a aa par_tricolonplus 22 2 22 b bb par_tricolonplus 22 2 22 c cc par_tricolonplus 33 3 23 a aa par_tricolonplus 33 3 23 b bb par_tricolonplus 33 3 23 c cc par_tricolonplus 1 21 a aa par_tricolonplus 1 21 a bb par_tricolonplus 1 21 a cc par_tricolonplus 1 22 b aa par_tricolonplus 1 22 b bb par_tricolonplus 1 22 b cc par_tricolonplus 1 23 c aa par_tricolonplus 1 23 c bb par_tricolonplus 1 23 c cc par_tricolonplus 2 21 a aa par_tricolonplus 2 21 a bb par_tricolonplus 2 21 a cc par_tricolonplus 2 22 b aa par_tricolonplus 2 22 b bb par_tricolonplus 2 22 b cc par_tricolonplus 2 23 c aa par_tricolonplus 2 23 c bb par_tricolonplus 2 23 c cc par_tricolonplus 3 21 a aa par_tricolonplus 3 21 a bb par_tricolonplus 3 21 a cc par_tricolonplus 3 22 b aa par_tricolonplus 3 22 b bb par_tricolonplus 3 22 b cc par_tricolonplus 3 23 c aa par_tricolonplus 3 23 c bb par_tricolonplus 3 23 c cc par_tricolonplus 1 21 a aa par_tricolonplus 1 21 a bb par_tricolonplus 1 21 a cc par_tricolonplus 1 22 b aa par_tricolonplus 1 22 b bb par_tricolonplus 1 22 b cc par_tricolonplus 1 23 c aa par_tricolonplus 1 23 c bb par_tricolonplus 1 23 c cc par_tricolonplus 2 21 a aa par_tricolonplus 2 21 a bb par_tricolonplus 2 21 a cc par_tricolonplus 2 22 b aa par_tricolonplus 2 22 b bb par_tricolonplus 2 22 b cc par_tricolonplus 2 23 c aa par_tricolonplus 2 23 c bb par_tricolonplus 2 23 c cc par_tricolonplus 3 21 a aa par_tricolonplus 3 21 a bb par_tricolonplus 3 21 a cc par_tricolonplus 3 22 b aa par_tricolonplus 3 22 b bb par_tricolonplus 3 22 b cc par_tricolonplus 3 23 c aa par_tricolonplus 3 23 c bb par_tricolonplus 3 23 c cc par_trim_illegal_value ### Test of --trim illegal par_trim_illegal_value parallel: Error: --trim must be one of: r l rl lr. par_unquote_replacement_string ### Can part of the replacement string be unquoted using uq()? par_unquote_replacement_string `echo foo`foo par_verbose_t ### Test --verbose and -t par_verbose_t echo bar par_verbose_t echo car par_verbose_t echo far par_verbose_t echo bar par_verbose_t echo car par_verbose_t echo far par_version ### Test --version: Version output (just check we get the same amount of lines) par_version 11 par_wd_3dot_local bug #45993: --wd ... should also work when run locally par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory par_wd_3dot_local /bin par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local / par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local /tmp par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local ~/.parallel/tmp/hostname-0-0 par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local ~/privat/parallel/testsuite par_wd_3dot_local OK par_wd_dotdotdot ### parallel --wd ... should clean up par_wd_dotdotdot 1 == 1 par_wd_dotdotdot ### $OLDPWD should be the dir in which parallel starts par_wd_dotdotdot /tmp foo par_xapply ### Test bug #43284: {%} and {#} with --xapply par_xapply a 1 1 b par_xapply 1 par_xapply ### bug #47501: --xapply for some input sources par_xapply a aa A AA par_xapply a aa B BB par_xapply b bb A AA par_xapply b bb B BB par_xapply c cc A AA par_xapply c cc B BB par_xargs_nul_char_in_input bug #47290: xargs: Warning: a NUL character occurred in the input par_xargs_nul_char_in_input parallel: Warning: A NUL character in the input was replaced with \0. par_xargs_nul_char_in_input parallel: Warning: NUL cannot be passed through in the argument list. par_xargs_nul_char_in_input parallel: Warning: Did you mean to use the --null option? par_xargs_nul_char_in_input foo\0not printed