mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 13:37:56 +00:00
parallel: More space efficient quoting of multiple ' in a row.
This commit is contained in:
parent
acb915b074
commit
f7074ae561
|
@ -25,7 +25,7 @@ single solution that just works:
|
|||
* https://web.archive.org/web/20210923091339/https://blog.licensezero.com/2019/08/26/but-you-said.html
|
||||
* https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/
|
||||
* https://feross.org/funding-experiment-recap/
|
||||
|
||||
* https://www.fordfoundation.org/media/2976/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure.pdf
|
||||
|
||||
== Is the citation notice compatible with GPLv3? ==
|
||||
|
||||
|
|
12
doc/haikus
12
doc/haikus
|
@ -4,6 +4,18 @@
|
|||
|
||||
Quote of the month:
|
||||
|
||||
Colorful output
|
||||
parallel, with --color flag
|
||||
tasks more vibrant now
|
||||
|
||||
--line-buffer, a flag
|
||||
parallel, now more precise
|
||||
Output is in sync
|
||||
|
||||
|
||||
write a haiku about gnu parallel and the :::+ option
|
||||
|
||||
|
||||
Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
|
||||
-- Stefan Gavriliuc @GavriliucStefan@twitter
|
||||
|
||||
|
|
|
@ -262,7 +262,7 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20230122 ('Pele/MashaAmina<<>>') released
|
||||
Subject: GNU Parallel 20230122 ('Bolsanaro+Brasilia/Pele/MashaAmina<<>>') released
|
||||
|
||||
GNU Parallel 20230122 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||
|
||||
|
@ -278,6 +278,8 @@ News about GNU Parallel:
|
|||
|
||||
https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel
|
||||
|
||||
https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
|
||||
|
||||
this is wrong-https://climbtheladder.com/10-gnu-parallel-best-practices/
|
||||
|
||||
<<>>
|
||||
|
|
101
src/Makefile.am
101
src/Makefile.am
|
@ -8,36 +8,58 @@ bin_SCRIPTS = parallel sql niceload parcat parset parsort \
|
|||
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||
env_parallel.sh env_parallel.tcsh env_parallel.zsh
|
||||
|
||||
POD_FILES = parcat.pod parset.pod sem.pod parallel.pod \
|
||||
env_parallel.pod niceload.pod parallel_examples.pod \
|
||||
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
||||
parallel_alternatives.pod
|
||||
|
||||
MAN_FILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||
parallel_examples.7 parallel_tutorial.7 parallel_book.7 \
|
||||
parallel_design.7 parallel_alternatives.7 parcat.1 parset.1 \
|
||||
parsort.1
|
||||
|
||||
PDF_MAN = parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
|
||||
niceload.pdf parallel_examples.pdf parallel_tutorial.pdf \
|
||||
parallel_book.pdf parallel_design.pdf \
|
||||
parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf
|
||||
|
||||
PDF_OTHER = parallel_cheat_bw.pdf parallel_options_map.pdf
|
||||
|
||||
PDF_FILES = $(PDF_MAN) $(PDF_OTHER)
|
||||
|
||||
RST_FILES = parallel.rst env_parallel.rst sem.rst sql.rst \
|
||||
niceload.rst parallel_examples.rst parallel_tutorial.rst \
|
||||
parallel_book.rst parallel_design.rst \
|
||||
parallel_alternatives.rst parcat.rst parset.rst parsort.rst
|
||||
|
||||
TEXI_FILES = parallel.texi env_parallel.texi sem.texi sql.texi \
|
||||
niceload.texi parallel_examples.texi parallel_tutorial.texi \
|
||||
parallel_book.texi parallel_design.texi \
|
||||
parallel_alternatives.texi parcat.texi parset.texi \
|
||||
parsort.texi
|
||||
|
||||
HTML_FILES = parallel.html env_parallel.html sem.html sql.html \
|
||||
niceload.html parallel_examples.html parallel_tutorial.html \
|
||||
parallel_book.html parallel_design.html \
|
||||
parallel_alternatives.html parcat.html parset.html \
|
||||
parsort.html
|
||||
|
||||
install-exec-hook:
|
||||
rm "$(DESTDIR)$(bindir)"/sem || true
|
||||
$(LN_S) parallel "$(DESTDIR)$(bindir)"/sem
|
||||
|
||||
if DOCUMENTATION
|
||||
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||
parallel_examples.7 parallel_tutorial.7 parallel_book.7 \
|
||||
parallel_design.7 parallel_alternatives.7 parcat.1 parset.1 \
|
||||
parsort.1
|
||||
doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
||||
niceload.html parallel_examples.html parallel_tutorial.html \
|
||||
parallel_book.html parallel_design.html \
|
||||
parallel_alternatives.html parcat.html parset.html \
|
||||
parsort.html \
|
||||
parallel.texi env_parallel.texi sem.texi sql.texi \
|
||||
niceload.texi parallel_examples.texi parallel_tutorial.texi \
|
||||
parallel_book.texi parallel_design.texi \
|
||||
parallel_alternatives.texi parcat.texi parset.texi \
|
||||
parsort.texi \
|
||||
parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst \
|
||||
parallel_examples.rst parallel_tutorial.rst parallel_book.rst \
|
||||
parallel_design.rst parallel_alternatives.rst parcat.rst \
|
||||
parset.rst parsort.rst \
|
||||
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
||||
parallel_examples.pdf parallel_tutorial.pdf parallel_book.pdf \
|
||||
parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
|
||||
parset.pdf parsort.pdf parallel_cheat_bw.pdf \
|
||||
parallel_options_map.pdf
|
||||
man_MANS = $(MAN_FILES)
|
||||
doc_DATA = $(HTML_FILES) $(TEXI_FILES) $(RST_FILES) $(PDF_FILES)
|
||||
endif
|
||||
|
||||
DISTCLEANFILES = $(MAN_FILES) $(HTML_FILES) $(TEXI_FILES) \
|
||||
$(RST_FILES) $(PDF_FILES)
|
||||
|
||||
|
||||
EXTRA_DIST = $(bin_SCRIPTS) sem $(POD_FILES) \
|
||||
parallel_cheat_bw.fodt pod2graph $(DISTCLEANFILES)
|
||||
|
||||
web: sphinx
|
||||
true
|
||||
|
||||
|
@ -381,36 +403,3 @@ parallel_options_map.pdf: parallel.pod pod2graph
|
|||
sem: parallel
|
||||
ln -fs parallel sem
|
||||
|
||||
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||
parallel_examples.7 parallel_tutorial.7 parallel_book.7 \
|
||||
parallel_design.7 parallel_alternatives.7 parcat.1 parset.1 \
|
||||
parsort.1 \
|
||||
parallel.html env_parallel.html sem.html sql.html \
|
||||
niceload.html parallel_examples.html parallel_tutorial.html \
|
||||
parallel_book.html parallel_design.html \
|
||||
parallel_alternatives.html parcat.html parset.html \
|
||||
parsort.html \
|
||||
parallel.texi env_parallel.texi sem.texi sql.texi \
|
||||
niceload.texi parallel_examples.texi parallel_tutorial.texi \
|
||||
parallel_book.texi parallel_design.texi \
|
||||
parallel_alternatives.texi parcat.texi parset.texi \
|
||||
parsort.texi \
|
||||
parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst \
|
||||
parallel_examples.rst parallel_tutorial.rst parallel_book.rst \
|
||||
parallel_design.rst parallel_alternatives.rst parcat.rst \
|
||||
parset.rst parsort.rst \
|
||||
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
||||
parallel_examples.pdf parallel_tutorial.pdf parallel_book.pdf \
|
||||
parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
|
||||
parset.pdf parsort.pdf parallel_cheat_bw.pdf \
|
||||
parallel_options_map.pdf
|
||||
|
||||
EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
|
||||
env_parallel env_parallel.ash env_parallel.bash \
|
||||
env_parallel.csh env_parallel.dash env_parallel.fish \
|
||||
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||
env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
|
||||
parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||
parallel_examples.pod parallel_tutorial.pod parallel_book.pod \
|
||||
parallel_design.pod parallel_alternatives.pod \
|
||||
parallel_cheat_bw.fodt pod2graph $(DISTCLEANFILES)
|
||||
|
|
|
@ -1955,7 +1955,7 @@ sub options_completion_hash() {
|
|||
# Before changing these lines, please read
|
||||
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
|
||||
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
|
||||
# You accept to be put in a public hall of shame by removing
|
||||
# You accept to be put in a public hall-of-shame by removing
|
||||
# these lines.
|
||||
("bibtex|citation".
|
||||
"[Print the citation notice and BibTeX entry for GNU parallel, ".
|
||||
|
@ -2194,8 +2194,7 @@ sub parse_options(@) {
|
|||
# Before changing these line, please read
|
||||
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
|
||||
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
|
||||
# You accept to be added to a public hall of shame by
|
||||
# removing the lines.
|
||||
# You accept to be added to a public hall-of-shame by removing the lines.
|
||||
if(defined $opt::citation) {
|
||||
citation(\@argv_before,\@ARGV);
|
||||
wait_and_exit(0);
|
||||
|
@ -3557,7 +3556,7 @@ sub shell_quote_scalar_default($) {
|
|||
# $shell_quoted = string quoted as needed by the shell
|
||||
local $_ = $_[0];
|
||||
if(/[^-_.+a-z0-9\/]/i) {
|
||||
s/'/'"'"'/g; # "-quote '-quotes
|
||||
s/'+/'"$&"'/g; # "-quote '-quotes: ''' => "'''"
|
||||
$_ = "'$_'"; # '-quote entire string
|
||||
s/^''//; # Remove unneeded '' at ends
|
||||
s/''$//; # (faster than s/^''|''$//g)
|
||||
|
|
|
@ -104,7 +104,7 @@ The following features are in some of the comparable tools:
|
|||
|
||||
=over
|
||||
|
||||
=item E1. Running jobs in parallel
|
||||
=item E1. Run jobs in parallel
|
||||
|
||||
=item E2. List running jobs
|
||||
|
||||
|
@ -246,7 +246,7 @@ the last half of the line is from another process. The example
|
|||
B<Parallel grep> cannot be done reliably with B<xargs> because of
|
||||
this. To see this in action try:
|
||||
|
||||
parallel perl -e '\$a=\"1\".\"{}\"x10000000\;print\ \$a,\"\\n\"' \
|
||||
parallel perl -e "'"'$a="1"."{}"x10000000;print $a,"\n"'"'" \
|
||||
'>' {} ::: a b c d e f g h
|
||||
# Serial = no mixing = the wanted result
|
||||
# 'tr -s a-z' squeezes repeating letters into a single letter
|
||||
|
@ -417,7 +417,8 @@ using GNU B<parallel>:
|
|||
|
||||
1$ find /path/to/files -type f | parallel gzip
|
||||
|
||||
2$ ./ppss.sh standalone -d /path/to/files -c 'cp "$ITEM" /destination/dir '
|
||||
2$ ./ppss.sh standalone -d /path/to/files \
|
||||
-c 'cp "$ITEM" /destination/dir '
|
||||
|
||||
2$ find /path/to/files -type f | parallel cp {} /destination/dir
|
||||
|
||||
|
@ -435,9 +436,11 @@ using GNU B<parallel>:
|
|||
./ppss deploy -C config.cfg
|
||||
./ppss start -C config
|
||||
|
||||
5$ # parallel does not use configs. If you want a different username put it in nodes.txt: user@hostname
|
||||
5$ # parallel does not use configs. If you want
|
||||
# a different username put it in nodes.txt: user@hostname
|
||||
find source/dir -type f |
|
||||
parallel --sshloginfile nodes.txt --trc {.}.mp3 lame -a {} -o {.}.mp3 --preset standard --quiet
|
||||
parallel --sshloginfile nodes.txt --trc {.}.mp3 \
|
||||
lame -a {} -o {.}.mp3 --preset standard --quiet
|
||||
|
||||
6$ ./ppss stop -C config.cfg
|
||||
|
||||
|
@ -1124,7 +1127,7 @@ file. GNU B<parallel> does not.
|
|||
https://github.com/reconquest/orgalorg
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN Rust parallel AND GNU Parallel
|
||||
=head2 DIFFERENCES BETWEEN Rust parallel(mmstick) AND GNU Parallel
|
||||
|
||||
Rust parallel focuses on speed. It is almost as fast as B<xargs>, but
|
||||
not as fast as B<parallel-bash>. It implements a few features from GNU
|
||||
|
@ -2618,18 +2621,26 @@ You can then do:
|
|||
|
||||
=head3 EXAMPLES FROM rargs MANUAL
|
||||
|
||||
ls *.bak | rargs -p '(.*)\.bak' mv {0} {1}
|
||||
ls *.bak | parallel mv {} {.}
|
||||
1$ ls *.bak | rargs -p '(.*)\.bak' mv {0} {1}
|
||||
|
||||
cat download-list.csv | rargs -p '(?P<url>.*),(?P<filename>.*)' wget {url} -O {filename}
|
||||
cat download-list.csv | parallel --csv wget {1} -O {2}
|
||||
1$ ls *.bak | parallel mv {} {.}
|
||||
|
||||
2$ cat download-list.csv |
|
||||
rargs -p '(?P<url>.*),(?P<filename>.*)' wget {url} -O {filename}
|
||||
|
||||
2$ cat download-list.csv |
|
||||
parallel --csv wget {1} -O {2}
|
||||
# or use regexps:
|
||||
cat download-list.csv |
|
||||
parallel --rpl '{url} s/,.*//' --rpl '{filename} s/.*?,//' wget {url} -O {filename}
|
||||
2$ cat download-list.csv |
|
||||
parallel --rpl '{url} s/,.*//' --rpl '{filename} s/.*?,//' \
|
||||
wget {url} -O {filename}
|
||||
|
||||
cat /etc/passwd | rargs -d: echo -e 'id: "{1}"\t name: "{5}"\t rest: "{6..::}"'
|
||||
cat /etc/passwd |
|
||||
parallel -q --colsep : echo -e 'id: "{1}"\t name: "{5}"\t rest: "{=6 $_=join":",@arg[6..$#arg]=}"'
|
||||
3$ cat /etc/passwd |
|
||||
rargs -d: echo -e 'id: "{1}"\t name: "{5}"\t rest: "{6..::}"'
|
||||
|
||||
3$ cat /etc/passwd |
|
||||
parallel -q --colsep : \
|
||||
echo -e 'id: "{1}"\t name: "{5}"\t rest: "{=6 $_=join":",@arg[6..$#arg]=}"'
|
||||
|
||||
https://github.com/lotabout/rargs (Last checked: 2020-01)
|
||||
|
||||
|
@ -2944,7 +2955,7 @@ composed commands.
|
|||
8$ # GNU Parallel does not need to stop a server
|
||||
|
||||
|
||||
https://github.com/ctbur/async/ (Last checked: 2020-11)
|
||||
https://github.com/ctbur/async/ (Last checked: 2023-01)
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN pardi AND GNU Parallel
|
||||
|
@ -2989,14 +3000,16 @@ parallel>).
|
|||
2$ pardi -n 1 -i data/test_in.types -o data/test_out.types \
|
||||
-d 'r:^#atoms:' -w 'cat %IN > %OUT'
|
||||
|
||||
2$ cat data/test_in.types | parallel -n 1 -k --pipe --cat \
|
||||
--regexp --recstart '^#atoms' 'cat {}' > data/test_out.types
|
||||
2$ cat data/test_in.types |
|
||||
parallel -n 1 -k --pipe --cat --regexp --recstart '^#atoms' \
|
||||
'cat {}' > data/test_out.types
|
||||
|
||||
3$ pardi -c 6 -i data/test_in.types -o data/test_out.types \
|
||||
-d 'r:^#atoms:' -w 'cat %IN > %OUT'
|
||||
|
||||
3$ cat data/test_in.types | parallel -n 6 -k --pipe --cat \
|
||||
--regexp --recstart '^#atoms' 'cat {}' > data/test_out.types
|
||||
3$ cat data/test_in.types |
|
||||
parallel -n 6 -k --pipe --cat --regexp --recstart '^#atoms' \
|
||||
'cat {}' > data/test_out.types
|
||||
|
||||
4$ pardi -i data/decoys.mol2 -o data/still_decoys.mol2 \
|
||||
-d 's:@<TRIPOS>MOLECULE' -w 'cp %IN %OUT'
|
||||
|
@ -3069,9 +3082,11 @@ Summary (see legend above):
|
|||
1$ simple_gpu_scheduler --gpus 0 1 2 < gpu_commands.txt
|
||||
|
||||
1$ parallel -j3 --shuf \
|
||||
CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1 =} {=uq;=}' < gpu_commands.txt
|
||||
CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1 =} {=uq;=}' \
|
||||
< gpu_commands.txt
|
||||
|
||||
2$ simple_hypersearch "python3 train_dnn.py --lr {lr} --batch_size {bs}" \
|
||||
2$ simple_hypersearch \
|
||||
"python3 train_dnn.py --lr {lr} --batch_size {bs}" \
|
||||
-p lr 0.001 0.0005 0.0001 -p bs 32 64 128 |
|
||||
simple_gpu_scheduler --gpus 0,1,2
|
||||
|
||||
|
@ -3086,7 +3101,7 @@ Summary (see legend above):
|
|||
simple_gpu_scheduler --gpus 0,1,2
|
||||
|
||||
3$ parallel --header : --shuf \
|
||||
CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1; seq() > 5 and skip() =}' \
|
||||
CUDA_VISIBLE_DEVICES='{=1 $_=slot()-1; seq()>5 and skip() =}' \
|
||||
python3 train_dnn.py --lr {lr} --batch_size {bs} \
|
||||
::: lr 0.001 0.0005 0.0001 ::: bs 32 64 128
|
||||
|
||||
|
@ -3592,6 +3607,188 @@ https://github.com/ctbur/async
|
|||
(Last checked: 2023-01)
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN tandem AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
|
||||
=over
|
||||
|
||||
=item - - - I4 - - N/A
|
||||
|
||||
=item M1 - - - - M6
|
||||
|
||||
=item - - O3 - - - - N/A - -
|
||||
|
||||
=item E1 - E3 - E5 - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<tandem> runs full commands in parallel. It is made for starting a
|
||||
"server", running a job against the server, and when the job is done,
|
||||
the server is killed.
|
||||
|
||||
More generally: it kills all jobs when the first job completes -
|
||||
similar to '--halt now,done=1'.
|
||||
|
||||
B<tandem> silently discards some output. It is unclear exactly when
|
||||
this happens. It looks like a race condition, because it varies for
|
||||
each run.
|
||||
|
||||
$ tandem "seq 10000" | wc -l
|
||||
6731 <- This should always be 10002
|
||||
|
||||
|
||||
=head3 EXAMPLES FROM Demo
|
||||
|
||||
tandem \
|
||||
'php -S localhost:8000' \
|
||||
'esbuild src/*.ts --bundle --outdir=dist --watch' \
|
||||
'tailwind -i src/index.css -o dist/index.css --watch'
|
||||
|
||||
# Emulate tandem's behaviour
|
||||
PARALLEL='--color --lb --halt now,done=1 --tagstring '
|
||||
PARALLEL="$PARALLEL'"'{=s/ .*//; $_.=".".$app{$_}++;=}'"'"
|
||||
export PARALLEL
|
||||
|
||||
parallel ::: \
|
||||
'php -S localhost:8000' \
|
||||
'esbuild src/*.ts --bundle --outdir=dist --watch' \
|
||||
'tailwind -i src/index.css -o dist/index.css --watch'
|
||||
|
||||
|
||||
=head3 EXAMPLES FROM tandem -h
|
||||
|
||||
# Emulate tandem's behaviour
|
||||
PARALLEL='--color --lb --halt now,done=1 --tagstring '
|
||||
PARALLEL="$PARALLEL'"'{=s/ .*//; $_.=".".$app{$_}++;=}'"'"
|
||||
export PARALLEL
|
||||
|
||||
1$ tandem 'sleep 5 && echo "hello"' 'sleep 2 && echo "world"'
|
||||
|
||||
1$ parallel ::: 'sleep 5 && echo "hello"' 'sleep 2 && echo "world"'
|
||||
|
||||
# '-t 0' fails. But '--timeout 0 works'
|
||||
2$ tandem --timeout 0 'sleep 5 && echo "hello"' \
|
||||
'sleep 2 && echo "world"'
|
||||
|
||||
2$ parallel --timeout 0 ::: 'sleep 5 && echo "hello"' \
|
||||
'sleep 2 && echo "world"'
|
||||
|
||||
=head3 EXAMPLES FROM tandem's readme.md
|
||||
|
||||
# Emulate tandem's behaviour
|
||||
PARALLEL='--color --lb --halt now,done=1 --tagstring '
|
||||
PARALLEL="$PARALLEL'"'{=s/ .*//; $_.=".".$app{$_}++;=}'"'"
|
||||
export PARALLEL
|
||||
|
||||
1$ tandem 'next dev' 'nodemon --quiet ./server.js'
|
||||
|
||||
1$ parallel ::: 'next dev' 'nodemon --quiet ./server.js'
|
||||
|
||||
2$ cat package.json
|
||||
{
|
||||
"scripts": {
|
||||
"dev:php": "...",
|
||||
"dev:js": "...",
|
||||
"dev:css": "..."
|
||||
}
|
||||
}
|
||||
|
||||
tandem 'npm:dev:php' 'npm:dev:js' 'npm:dev:css'
|
||||
|
||||
# GNU Parallel uses bash functions instead
|
||||
2$ cat package.sh
|
||||
dev:php() { ... ; }
|
||||
dev:js() { ... ; }
|
||||
dev:css() { ... ; }
|
||||
export -f dev:php dev:js dev:css
|
||||
|
||||
. package.sh
|
||||
parallel ::: dev:php dev:js dev:css
|
||||
|
||||
3$ tandem 'npm:dev:*'
|
||||
|
||||
3$ compgen -A function | grep ^dev: | parallel
|
||||
|
||||
For usage in Makefiles, include a copy of GNU Parallel with your
|
||||
source using `parallel --embed`. This has the added benefit of also
|
||||
working if access to the internet is down or restricted.
|
||||
|
||||
https://github.com/rosszurowski/tandem
|
||||
(Last checked: 2023-01)
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN rust-parallel(aaronriekenberg) AND GNU Parallel
|
||||
|
||||
Summary (see legend above):
|
||||
|
||||
=over
|
||||
|
||||
=item I1 I2 I3 - - - -
|
||||
|
||||
=item - - - - - M6
|
||||
|
||||
=item O1 O2 O3 - O5 O6 - N/A - O10
|
||||
|
||||
=item E1 - - E4 - - -
|
||||
|
||||
=item - - - - - - - - -
|
||||
|
||||
=item - -
|
||||
|
||||
=back
|
||||
|
||||
B<rust-parallel> has a goal of only using Rust. It seems it is
|
||||
impossible to call bash functions from the command line. You would
|
||||
need to put these in a script.
|
||||
|
||||
Calling script that miss the shebang line (#! as first line) fails.
|
||||
|
||||
=head3 EXAMPLES FROM rust-parallel's README.md
|
||||
|
||||
$ cat >./test <<EOL
|
||||
echo hi
|
||||
echo there
|
||||
echo how
|
||||
echo are
|
||||
echo you
|
||||
EOL
|
||||
|
||||
1$ cat test | rust-parallel -j5
|
||||
|
||||
1$ cat test | parallel -j5
|
||||
|
||||
2$ cat test | rust-parallel -j1
|
||||
|
||||
2$ cat test | parallel -j1
|
||||
|
||||
3$ head -100 /usr/share/dict/words | rust-parallel md5 -s
|
||||
|
||||
3$ head -100 /usr/share/dict/words | parallel md5 -s
|
||||
|
||||
4$ find . -type f -print0 | rust-parallel -0 gzip -f -k
|
||||
|
||||
4$ find . -type f -print0 | parallel -0 gzip -f -k
|
||||
|
||||
5$ head -100 /usr/share/dict/words |
|
||||
awk '{printf "md5 -s %s\n", $1}' | rust-parallel
|
||||
|
||||
5$ head -100 /usr/share/dict/words |
|
||||
awk '{printf "md5 -s %s\n", $1}' | parallel
|
||||
|
||||
6$ head -100 /usr/share/dict/words | rust-parallel md5 -s |
|
||||
grep -i abba
|
||||
|
||||
6$ head -100 /usr/share/dict/words | parallel md5 -s |
|
||||
grep -i abba
|
||||
|
||||
https://github.com/aaronriekenberg/rust-parallel
|
||||
(Last checked: 2023-01)
|
||||
|
||||
=head2 Todo
|
||||
|
||||
http://code.google.com/p/push/ (cannot compile)
|
||||
|
@ -3742,7 +3939,8 @@ full for at least 2 seconds.
|
|||
# Generate 100 GB to fill $TMPDIR
|
||||
# Adjust if /tmp is bigger than 100 GB
|
||||
yes | head -c 100G >$TMPDIR/$$
|
||||
# Generate 10 MB output that will not be buffered due to full disk
|
||||
# Generate 10 MB output that will not be buffered
|
||||
# due to full disk
|
||||
perl -e 'print "X"x10_000_000' | head -c 10M
|
||||
echo This part is missing from incomplete output
|
||||
sleep 2
|
||||
|
|
|
@ -129,92 +129,92 @@ par_command_len_shellquote -Slo -j10 ' 1 7 1 1 2188
|
|||
par_command_len_shellquote -Slo -j10 ' 1 8 1 1 6562
|
||||
par_command_len_shellquote -Slo -j10 ' 1 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 1 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 2 1 1 1 9
|
||||
par_command_len_shellquote -Slo -j10 ' 2 2 1 1 27
|
||||
par_command_len_shellquote -Slo -j10 ' 2 3 1 1 81
|
||||
par_command_len_shellquote -Slo -j10 ' 2 4 1 1 243
|
||||
par_command_len_shellquote -Slo -j10 ' 2 5 1 1 729
|
||||
par_command_len_shellquote -Slo -j10 ' 2 6 1 1 2187
|
||||
par_command_len_shellquote -Slo -j10 ' 2 7 1 1 6561
|
||||
par_command_len_shellquote -Slo -j10 ' 2 1 1 1 5
|
||||
par_command_len_shellquote -Slo -j10 ' 2 2 1 1 11
|
||||
par_command_len_shellquote -Slo -j10 ' 2 3 1 1 29
|
||||
par_command_len_shellquote -Slo -j10 ' 2 4 1 1 83
|
||||
par_command_len_shellquote -Slo -j10 ' 2 5 1 1 245
|
||||
par_command_len_shellquote -Slo -j10 ' 2 6 1 1 731
|
||||
par_command_len_shellquote -Slo -j10 ' 2 7 1 1 2189
|
||||
par_command_len_shellquote -Slo -j10 ' 2 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 2 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 2 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 3 1 1 1 14
|
||||
par_command_len_shellquote -Slo -j10 ' 3 2 1 1 44
|
||||
par_command_len_shellquote -Slo -j10 ' 3 3 1 1 134
|
||||
par_command_len_shellquote -Slo -j10 ' 3 4 1 1 404
|
||||
par_command_len_shellquote -Slo -j10 ' 3 5 1 1 1214
|
||||
par_command_len_shellquote -Slo -j10 ' 3 6 1 1 3644
|
||||
par_command_len_shellquote -Slo -j10 ' 3 7 1 1 10xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 3 1 1 1 6
|
||||
par_command_len_shellquote -Slo -j10 ' 3 2 1 1 12
|
||||
par_command_len_shellquote -Slo -j10 ' 3 3 1 1 30
|
||||
par_command_len_shellquote -Slo -j10 ' 3 4 1 1 84
|
||||
par_command_len_shellquote -Slo -j10 ' 3 5 1 1 246
|
||||
par_command_len_shellquote -Slo -j10 ' 3 6 1 1 732
|
||||
par_command_len_shellquote -Slo -j10 ' 3 7 1 1 2190
|
||||
par_command_len_shellquote -Slo -j10 ' 3 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 3 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 3 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 4 1 1 1 19
|
||||
par_command_len_shellquote -Slo -j10 ' 4 2 1 1 61
|
||||
par_command_len_shellquote -Slo -j10 ' 4 3 1 1 187
|
||||
par_command_len_shellquote -Slo -j10 ' 4 4 1 1 565
|
||||
par_command_len_shellquote -Slo -j10 ' 4 5 1 1 1699
|
||||
par_command_len_shellquote -Slo -j10 ' 4 6 1 1 5101
|
||||
par_command_len_shellquote -Slo -j10 ' 4 7 1 1 15xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 4 1 1 1 7
|
||||
par_command_len_shellquote -Slo -j10 ' 4 2 1 1 13
|
||||
par_command_len_shellquote -Slo -j10 ' 4 3 1 1 31
|
||||
par_command_len_shellquote -Slo -j10 ' 4 4 1 1 85
|
||||
par_command_len_shellquote -Slo -j10 ' 4 5 1 1 247
|
||||
par_command_len_shellquote -Slo -j10 ' 4 6 1 1 733
|
||||
par_command_len_shellquote -Slo -j10 ' 4 7 1 1 2191
|
||||
par_command_len_shellquote -Slo -j10 ' 4 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 4 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 4 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 5 1 1 1 24
|
||||
par_command_len_shellquote -Slo -j10 ' 5 2 1 1 78
|
||||
par_command_len_shellquote -Slo -j10 ' 5 3 1 1 240
|
||||
par_command_len_shellquote -Slo -j10 ' 5 4 1 1 726
|
||||
par_command_len_shellquote -Slo -j10 ' 5 5 1 1 2184
|
||||
par_command_len_shellquote -Slo -j10 ' 5 6 1 1 6558
|
||||
par_command_len_shellquote -Slo -j10 ' 5 7 1 1 19xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 5 1 1 1 8
|
||||
par_command_len_shellquote -Slo -j10 ' 5 2 1 1 14
|
||||
par_command_len_shellquote -Slo -j10 ' 5 3 1 1 32
|
||||
par_command_len_shellquote -Slo -j10 ' 5 4 1 1 86
|
||||
par_command_len_shellquote -Slo -j10 ' 5 5 1 1 248
|
||||
par_command_len_shellquote -Slo -j10 ' 5 6 1 1 734
|
||||
par_command_len_shellquote -Slo -j10 ' 5 7 1 1 2192
|
||||
par_command_len_shellquote -Slo -j10 ' 5 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 5 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 5 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 6 1 1 1 29
|
||||
par_command_len_shellquote -Slo -j10 ' 6 2 1 1 95
|
||||
par_command_len_shellquote -Slo -j10 ' 6 3 1 1 293
|
||||
par_command_len_shellquote -Slo -j10 ' 6 4 1 1 887
|
||||
par_command_len_shellquote -Slo -j10 ' 6 5 1 1 2669
|
||||
par_command_len_shellquote -Slo -j10 ' 6 6 1 1 8015
|
||||
par_command_len_shellquote -Slo -j10 ' 6 1 1 1 9
|
||||
par_command_len_shellquote -Slo -j10 ' 6 2 1 1 15
|
||||
par_command_len_shellquote -Slo -j10 ' 6 3 1 1 33
|
||||
par_command_len_shellquote -Slo -j10 ' 6 4 1 1 87
|
||||
par_command_len_shellquote -Slo -j10 ' 6 5 1 1 249
|
||||
par_command_len_shellquote -Slo -j10 ' 6 6 1 1 735
|
||||
par_command_len_shellquote -Slo -j10 ' 6 7 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 6 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 6 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 6 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 7 1 1 1 34
|
||||
par_command_len_shellquote -Slo -j10 ' 7 2 1 1 112
|
||||
par_command_len_shellquote -Slo -j10 ' 7 3 1 1 346
|
||||
par_command_len_shellquote -Slo -j10 ' 7 4 1 1 1048
|
||||
par_command_len_shellquote -Slo -j10 ' 7 5 1 1 3154
|
||||
par_command_len_shellquote -Slo -j10 ' 7 6 1 1 9472
|
||||
par_command_len_shellquote -Slo -j10 ' 7 1 1 1 10
|
||||
par_command_len_shellquote -Slo -j10 ' 7 2 1 1 16
|
||||
par_command_len_shellquote -Slo -j10 ' 7 3 1 1 34
|
||||
par_command_len_shellquote -Slo -j10 ' 7 4 1 1 88
|
||||
par_command_len_shellquote -Slo -j10 ' 7 5 1 1 250
|
||||
par_command_len_shellquote -Slo -j10 ' 7 6 1 1 736
|
||||
par_command_len_shellquote -Slo -j10 ' 7 7 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 7 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 7 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 7 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 8 1 1 1 39
|
||||
par_command_len_shellquote -Slo -j10 ' 8 2 1 1 129
|
||||
par_command_len_shellquote -Slo -j10 ' 8 3 1 1 399
|
||||
par_command_len_shellquote -Slo -j10 ' 8 4 1 1 1209
|
||||
par_command_len_shellquote -Slo -j10 ' 8 5 1 1 3639
|
||||
par_command_len_shellquote -Slo -j10 ' 8 6 1 1 10xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 8 1 1 1 11
|
||||
par_command_len_shellquote -Slo -j10 ' 8 2 1 1 17
|
||||
par_command_len_shellquote -Slo -j10 ' 8 3 1 1 35
|
||||
par_command_len_shellquote -Slo -j10 ' 8 4 1 1 89
|
||||
par_command_len_shellquote -Slo -j10 ' 8 5 1 1 251
|
||||
par_command_len_shellquote -Slo -j10 ' 8 6 1 1 737
|
||||
par_command_len_shellquote -Slo -j10 ' 8 7 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 8 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 8 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 8 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 9 1 1 1 44
|
||||
par_command_len_shellquote -Slo -j10 ' 9 2 1 1 146
|
||||
par_command_len_shellquote -Slo -j10 ' 9 3 1 1 452
|
||||
par_command_len_shellquote -Slo -j10 ' 9 4 1 1 1370
|
||||
par_command_len_shellquote -Slo -j10 ' 9 5 1 1 4124
|
||||
par_command_len_shellquote -Slo -j10 ' 9 6 1 1 12xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 9 1 1 1 12
|
||||
par_command_len_shellquote -Slo -j10 ' 9 2 1 1 18
|
||||
par_command_len_shellquote -Slo -j10 ' 9 3 1 1 36
|
||||
par_command_len_shellquote -Slo -j10 ' 9 4 1 1 90
|
||||
par_command_len_shellquote -Slo -j10 ' 9 5 1 1 252
|
||||
par_command_len_shellquote -Slo -j10 ' 9 6 1 1 738
|
||||
par_command_len_shellquote -Slo -j10 ' 9 7 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 9 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 9 9 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 9 10 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 10 1 1 1 49
|
||||
par_command_len_shellquote -Slo -j10 ' 10 2 1 1 163
|
||||
par_command_len_shellquote -Slo -j10 ' 10 3 1 1 505
|
||||
par_command_len_shellquote -Slo -j10 ' 10 4 1 1 1531
|
||||
par_command_len_shellquote -Slo -j10 ' 10 5 1 1 4609
|
||||
par_command_len_shellquote -Slo -j10 ' 10 6 1 1 13xxx
|
||||
par_command_len_shellquote -Slo -j10 ' 10 1 1 1 13
|
||||
par_command_len_shellquote -Slo -j10 ' 10 2 1 1 19
|
||||
par_command_len_shellquote -Slo -j10 ' 10 3 1 1 37
|
||||
par_command_len_shellquote -Slo -j10 ' 10 4 1 1 91
|
||||
par_command_len_shellquote -Slo -j10 ' 10 5 1 1 253
|
||||
par_command_len_shellquote -Slo -j10 ' 10 6 1 1 739
|
||||
par_command_len_shellquote -Slo -j10 ' 10 7 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 10 8 0 0 0
|
||||
par_command_len_shellquote -Slo -j10 ' 10 9 0 0 0
|
||||
|
@ -397,91 +397,91 @@ par_command_len_shellquote ' 1 7 1 2 2190
|
|||
par_command_len_shellquote ' 1 8 0 0 0
|
||||
par_command_len_shellquote ' 1 9 0 0 0
|
||||
par_command_len_shellquote ' 1 10 0 0 0
|
||||
par_command_len_shellquote ' 2 1 1 2 12
|
||||
par_command_len_shellquote ' 2 2 1 2 30
|
||||
par_command_len_shellquote ' 2 3 1 2 84
|
||||
par_command_len_shellquote ' 2 4 1 2 246
|
||||
par_command_len_shellquote ' 2 5 1 2 732
|
||||
par_command_len_shellquote ' 2 6 1 2 2190
|
||||
par_command_len_shellquote ' 2 7 1 2 6564
|
||||
par_command_len_shellquote ' 2 1 1 2 8
|
||||
par_command_len_shellquote ' 2 2 1 2 14
|
||||
par_command_len_shellquote ' 2 3 1 2 32
|
||||
par_command_len_shellquote ' 2 4 1 2 86
|
||||
par_command_len_shellquote ' 2 5 1 2 248
|
||||
par_command_len_shellquote ' 2 6 1 2 734
|
||||
par_command_len_shellquote ' 2 7 1 2 2192
|
||||
par_command_len_shellquote ' 2 8 0 0 0
|
||||
par_command_len_shellquote ' 2 9 0 0 0
|
||||
par_command_len_shellquote ' 2 10 0 0 0
|
||||
par_command_len_shellquote ' 3 1 1 2 18
|
||||
par_command_len_shellquote ' 3 2 1 2 48
|
||||
par_command_len_shellquote ' 3 3 1 2 138
|
||||
par_command_len_shellquote ' 3 4 1 2 408
|
||||
par_command_len_shellquote ' 3 5 1 2 1218
|
||||
par_command_len_shellquote ' 3 6 1 2 3648
|
||||
par_command_len_shellquote ' 3 1 1 2 10
|
||||
par_command_len_shellquote ' 3 2 1 2 16
|
||||
par_command_len_shellquote ' 3 3 1 2 34
|
||||
par_command_len_shellquote ' 3 4 1 2 88
|
||||
par_command_len_shellquote ' 3 5 1 2 250
|
||||
par_command_len_shellquote ' 3 6 1 2 736
|
||||
par_command_len_shellquote ' 3 7 0 0 0
|
||||
par_command_len_shellquote ' 3 8 0 0 0
|
||||
par_command_len_shellquote ' 3 9 0 0 0
|
||||
par_command_len_shellquote ' 3 10 0 0 0
|
||||
par_command_len_shellquote ' 4 1 1 2 24
|
||||
par_command_len_shellquote ' 4 2 1 2 66
|
||||
par_command_len_shellquote ' 4 3 1 2 192
|
||||
par_command_len_shellquote ' 4 4 1 2 570
|
||||
par_command_len_shellquote ' 4 5 1 2 1704
|
||||
par_command_len_shellquote ' 4 6 1 2 5106
|
||||
par_command_len_shellquote ' 4 1 1 2 12
|
||||
par_command_len_shellquote ' 4 2 1 2 18
|
||||
par_command_len_shellquote ' 4 3 1 2 36
|
||||
par_command_len_shellquote ' 4 4 1 2 90
|
||||
par_command_len_shellquote ' 4 5 1 2 252
|
||||
par_command_len_shellquote ' 4 6 1 2 738
|
||||
par_command_len_shellquote ' 4 7 0 0 0
|
||||
par_command_len_shellquote ' 4 8 0 0 0
|
||||
par_command_len_shellquote ' 4 9 0 0 0
|
||||
par_command_len_shellquote ' 4 10 0 0 0
|
||||
par_command_len_shellquote ' 5 1 1 2 30
|
||||
par_command_len_shellquote ' 5 2 1 2 84
|
||||
par_command_len_shellquote ' 5 3 1 2 246
|
||||
par_command_len_shellquote ' 5 4 1 2 732
|
||||
par_command_len_shellquote ' 5 5 1 2 2190
|
||||
par_command_len_shellquote ' 5 6 1 2 6564
|
||||
par_command_len_shellquote ' 5 1 1 2 14
|
||||
par_command_len_shellquote ' 5 2 1 2 20
|
||||
par_command_len_shellquote ' 5 3 1 2 38
|
||||
par_command_len_shellquote ' 5 4 1 2 92
|
||||
par_command_len_shellquote ' 5 5 1 2 254
|
||||
par_command_len_shellquote ' 5 6 1 2 740
|
||||
par_command_len_shellquote ' 5 7 0 0 0
|
||||
par_command_len_shellquote ' 5 8 0 0 0
|
||||
par_command_len_shellquote ' 5 9 0 0 0
|
||||
par_command_len_shellquote ' 5 10 0 0 0
|
||||
par_command_len_shellquote ' 6 1 1 2 36
|
||||
par_command_len_shellquote ' 6 2 1 2 102
|
||||
par_command_len_shellquote ' 6 3 1 2 300
|
||||
par_command_len_shellquote ' 6 4 1 2 894
|
||||
par_command_len_shellquote ' 6 5 1 2 2676
|
||||
par_command_len_shellquote ' 6 6 1 2 8022
|
||||
par_command_len_shellquote ' 6 1 1 2 16
|
||||
par_command_len_shellquote ' 6 2 1 2 22
|
||||
par_command_len_shellquote ' 6 3 1 2 40
|
||||
par_command_len_shellquote ' 6 4 1 2 94
|
||||
par_command_len_shellquote ' 6 5 1 2 256
|
||||
par_command_len_shellquote ' 6 6 1 2 742
|
||||
par_command_len_shellquote ' 6 7 0 0 0
|
||||
par_command_len_shellquote ' 6 8 0 0 0
|
||||
par_command_len_shellquote ' 6 9 0 0 0
|
||||
par_command_len_shellquote ' 6 10 0 0 0
|
||||
par_command_len_shellquote ' 7 1 1 2 42
|
||||
par_command_len_shellquote ' 7 2 1 2 120
|
||||
par_command_len_shellquote ' 7 3 1 2 354
|
||||
par_command_len_shellquote ' 7 4 1 2 1056
|
||||
par_command_len_shellquote ' 7 5 1 2 3162
|
||||
par_command_len_shellquote ' 7 6 1 2 9480
|
||||
par_command_len_shellquote ' 7 1 1 2 18
|
||||
par_command_len_shellquote ' 7 2 1 2 24
|
||||
par_command_len_shellquote ' 7 3 1 2 42
|
||||
par_command_len_shellquote ' 7 4 1 2 96
|
||||
par_command_len_shellquote ' 7 5 1 2 258
|
||||
par_command_len_shellquote ' 7 6 1 2 744
|
||||
par_command_len_shellquote ' 7 7 0 0 0
|
||||
par_command_len_shellquote ' 7 8 0 0 0
|
||||
par_command_len_shellquote ' 7 9 0 0 0
|
||||
par_command_len_shellquote ' 7 10 0 0 0
|
||||
par_command_len_shellquote ' 8 1 1 2 48
|
||||
par_command_len_shellquote ' 8 2 1 2 138
|
||||
par_command_len_shellquote ' 8 3 1 2 408
|
||||
par_command_len_shellquote ' 8 4 1 2 1218
|
||||
par_command_len_shellquote ' 8 5 1 2 3648
|
||||
par_command_len_shellquote ' 8 6 1 2 10xxx
|
||||
par_command_len_shellquote ' 8 1 1 2 20
|
||||
par_command_len_shellquote ' 8 2 1 2 26
|
||||
par_command_len_shellquote ' 8 3 1 2 44
|
||||
par_command_len_shellquote ' 8 4 1 2 98
|
||||
par_command_len_shellquote ' 8 5 1 2 260
|
||||
par_command_len_shellquote ' 8 6 1 2 746
|
||||
par_command_len_shellquote ' 8 7 0 0 0
|
||||
par_command_len_shellquote ' 8 8 0 0 0
|
||||
par_command_len_shellquote ' 8 9 0 0 0
|
||||
par_command_len_shellquote ' 8 10 0 0 0
|
||||
par_command_len_shellquote ' 9 1 1 2 54
|
||||
par_command_len_shellquote ' 9 2 1 2 156
|
||||
par_command_len_shellquote ' 9 3 1 2 462
|
||||
par_command_len_shellquote ' 9 4 1 2 1380
|
||||
par_command_len_shellquote ' 9 5 1 2 4134
|
||||
par_command_len_shellquote ' 9 1 1 2 22
|
||||
par_command_len_shellquote ' 9 2 1 2 28
|
||||
par_command_len_shellquote ' 9 3 1 2 46
|
||||
par_command_len_shellquote ' 9 4 1 2 100
|
||||
par_command_len_shellquote ' 9 5 1 2 262
|
||||
par_command_len_shellquote ' 9 6 0 0 0
|
||||
par_command_len_shellquote ' 9 7 0 0 0
|
||||
par_command_len_shellquote ' 9 8 0 0 0
|
||||
par_command_len_shellquote ' 9 9 0 0 0
|
||||
par_command_len_shellquote ' 9 10 0 0 0
|
||||
par_command_len_shellquote ' 10 1 1 2 60
|
||||
par_command_len_shellquote ' 10 2 1 2 174
|
||||
par_command_len_shellquote ' 10 3 1 2 516
|
||||
par_command_len_shellquote ' 10 4 1 2 1542
|
||||
par_command_len_shellquote ' 10 5 1 2 4620
|
||||
par_command_len_shellquote ' 10 1 1 2 24
|
||||
par_command_len_shellquote ' 10 2 1 2 30
|
||||
par_command_len_shellquote ' 10 3 1 2 48
|
||||
par_command_len_shellquote ' 10 4 1 2 102
|
||||
par_command_len_shellquote ' 10 5 1 2 264
|
||||
par_command_len_shellquote ' 10 6 0 0 0
|
||||
par_command_len_shellquote ' 10 7 0 0 0
|
||||
par_command_len_shellquote ' 10 8 0 0 0
|
||||
|
|
Loading…
Reference in a new issue