Released as 20200422 ('10years')

This commit is contained in:
Ole Tange 2020-04-22 20:15:59 +02:00
parent 0c21f74a00
commit e5fd1c0767
30 changed files with 789 additions and 451 deletions

View file

@ -56,6 +56,11 @@ run() {
# GnuPG installed # GnuPG installed
# Setup .gnupg/gpg.conf if not already done # Setup .gnupg/gpg.conf if not already done
echo | gpg 2>/dev/null >/dev/null echo | gpg 2>/dev/null >/dev/null
if gpg --list-keys 0xFFFFFFF1 && gpg --list-keys 0x88888888 ; then
echo Keys fetched
# OK
return 0
else
keyserver1=keys.gnupg.net keyserver1=keys.gnupg.net
keyserver2=pool.sks-keyservers.net keyserver2=pool.sks-keyservers.net
if gpg --keyserver $keyserver1 --recv-key 0xFFFFFFF1 || if gpg --keyserver $keyserver1 --recv-key 0xFFFFFFF1 ||
@ -74,6 +79,7 @@ run() {
echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked." echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked."
return 1 return 1
fi fi
fi
else else
# GnuPG not installed # GnuPG not installed
echo echo

35
NEWS
View file

@ -1,3 +1,38 @@
20200422
This release celebrates GNU Parallel's 10 years as a GNU tool:
> commit ed2dfb1043768154d4e7678e01e10287155fa834
> Author: Ole Tange <ole@tange.dk>
> Date: Thu Apr 22 01:23:00 2010 +0200
>
> Name change: Parallel is now GNU Parallel.
> Basic structure for sshlogin and sshloginfile.
New in this release:
* parsort makes GNU sort run faster for files with more than 1M lines.
* Bug fixes and man page updates.
News about GNU Parallel:
* Several clusters have updated their documentation of GNU Parallel:
https://www.grid5000.fr/w/GNU_Parallel
https://research-it.berkeley.edu/virtual-training-running-jobs-parallel-savio
http://www.hpc.lsu.edu/training/archive/tutorials.php
* add_pho uses GNU Parallel: https://github.com/SeedlingsBabylab/add_pho
* GNU parallel使用笔记https://zhuanlan.zhihu.com/p/37340011
* Virtual Workshop: Running Jobs in Parallel on Savio
https://ais.berkeley.edu/events/virtual-workshop-running-jobs-parallel-savio/2020-04-20
* Free Concurrency with GNU Parallel
https://phili.pe/posts/free-concurrency-with-gnu-parallel/
20200322 20200322
* Bug fixes and man page updates. * Bug fixes and man page updates.

20
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
gpg parallel-20200322.tar.bz2.sig gpg parallel-20200422.tar.bz2.sig
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf - bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
cd parallel-20200322 cd parallel-20200422
./configure && make && sudo make install ./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
gpg parallel-20200322.tar.bz2.sig gpg parallel-20200422.tar.bz2.sig
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf - bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
cd parallel-20200322 cd parallel-20200422
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20200322. # Generated by GNU Autoconf 2.69 for parallel 20200422.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20200322' PACKAGE_VERSION='20200422'
PACKAGE_STRING='parallel 20200322' PACKAGE_STRING='parallel 20200422'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20200322 to adapt to many kinds of systems. \`configure' configures parallel 20200422 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20200322:";; short | recursive ) echo "Configuration of parallel 20200422:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20200322 parallel configure 20200422
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20200322, which was It was created by parallel $as_me 20200422, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20200322' VERSION='20200422'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20200322, which was This file was extended by parallel $as_me 20200422, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20200322 parallel config.status 20200422
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20200322], [bug-parallel@gnu.org]) AC_INIT([parallel], [20200422], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -3,16 +3,13 @@ Quote of the month:
Who needs spark when GNU Parallel exists Who needs spark when GNU Parallel exists
-- MatthijsB @MatthijsBrs@twitter -- MatthijsB @MatthijsBrs@twitter
I wish more command line software had example pages as robust as GNU Parallel
-- Lucidbeaming @lucidbeaming
GNU parallel all the way! GNU parallel all the way!
-- David Manouchehri @DaveManouchehri@twitter -- David Manouchehri @DaveManouchehri@twitter
I found GNU Parallel and it's awesome. I found GNU Parallel and it's awesome.
-- Teddy Choi @TeddyJChoi@twitter -- Teddy Choi @TeddyJChoi@twitter
Well anyway, It was blazingly fast and astonished by performance. guess I'll never use xargs. Well anyway, It was blazingly fast and astonished by performance. Guess I'll never use xargs.
-- (Not) Akaming @_Akamig@twitter -- (Not) Akaming @_Akamig@twitter
Yeah, GNU parallel is a beast when used accordingly. Yeah, GNU parallel is a beast when used accordingly.
@ -24,7 +21,7 @@ Quote of the month:
With multicore systems everywhere GNU Parallel is a must have tool. With multicore systems everywhere GNU Parallel is a must have tool.
-- Neil H. Watson @neil_h_watson@twitter -- Neil H. Watson @neil_h_watson@twitter
My new favourite command line tool is gnu parallel. After knowing it for a while I just recently came back to it for a refactor of a script and now I've changed like 4 different huge scripts into tiny parallel scripts that do their job literally 3 to 10 times faster and just [mind blown] My new favourite command line tool is GNU Parallel. After knowing it for a while I just recently came back to it for a refactor of a script and now I've changed like 4 different huge scripts into tiny parallel scripts that do their job literally 3 to 10 times faster and just [mind blown]
-- Izzy @angry_izzy@twitter -- Izzy @angry_izzy@twitter
I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL
@ -60,6 +57,12 @@ Quote of the month:
=== Used === === Used ===
I wish more command line software had example pages as robust as GNU Parallel
-- Lucidbeaming @lucidbeaming
GNU parallel is straight up incredible.
-- Ben Johnson @biobenkj@twtter
GNU parallel has helped me kill a Hadoop cluster before. GNU parallel has helped me kill a Hadoop cluster before.
-- Travis Campbell @hcoyote@twitter -- Travis Campbell @hcoyote@twitter

View file

@ -112,8 +112,9 @@ http://www.gnu.org/software/parallel/man.html
http://www.gnu.org/software/parallel/sql.html http://www.gnu.org/software/parallel/sql.html
http://www.gnu.org/software/parallel/sem.html http://www.gnu.org/software/parallel/sem.html
http://www.gnu.org/software/parallel/env_parallel.html http://www.gnu.org/software/parallel/env_parallel.html
http://www.gnu.org/software/parallel/parset.html
http://www.gnu.org/software/parallel/parcat.html http://www.gnu.org/software/parallel/parcat.html
http://www.gnu.org/software/parallel/parset.html
http://www.gnu.org/software/parallel/parsort.html
http://www.gnu.org/software/parallel/niceload.html http://www.gnu.org/software/parallel/niceload.html
cp src/*.pdf src/*.html ../parallel-web/parallel cp src/*.pdf src/*.html ../parallel-web/parallel
@ -210,34 +211,46 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm> stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20200322 ('Corona/Locust') released <<[stable]>> Subject: GNU Parallel 20200422 ('10years') released <<[stable]>>
GNU Parallel 20200322 ('Corona') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ GNU Parallel 20200422 ('10years') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
<<No new functionality was introduced so this is a good candidate for a stable release.>> <<No new functionality was introduced so this is a good candidate for a stable release.>>
GNU Parallel is 10 years old next year on 2020-04-22. You are here by invited to a reception on Friday 2020-04-17. This release celebrates GNU Parallel's 10 years as a GNU tool:
> commit ed2dfb1043768154d4e7678e01e10287155fa834
> Author: Ole Tange <ole@tange.dk>
> Date: Thu Apr 22 01:23:00 2010 +0200
>
> Name change: Parallel is now GNU Parallel.
> Basic structure for sshlogin and sshloginfile.
Unfortunately the physical celebrations has been cancelled due to COVID19.
See https://www.gnu.org/software/parallel/10-years-anniversary.html
Quote of the month: Quote of the month:
GNU parallel is straight up incredible. I wish more command line software had example pages as robust as GNU Parallel
-- Ben Johnson @biobenkj@twtter -- Lucidbeaming @lucidbeaming
New in this release: New in this release:
https://dev.to/saveriomiroddi/running-shell-commands-in-parallel-via-gnu-parallel-3a72 * parsort makes GNU sort run faster for files with more than 1M lines.
* Bug fixes and man page updates. * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
* GNU Parallel course in Copenhagen https://www.prosa.dk/nc/arrangementer/arrangement/gnu-parallel-med-ole-tange/ * Several clusters have updated their documentation of GNU Parallel: https://www.grid5000.fr/w/GNU_Parallel https://research-it.berkeley.edu/virtual-training-running-jobs-parallel-savio http://www.hpc.lsu.edu/training/archive/tutorials.php
* GNU Parallel course in Århus https://www.prosa.dk/nc/arrangementer/arrangement/gnu-parallel-og-parallelisering-i-unix-shellen/ * add_pho uses GNU Parallel: https://github.com/SeedlingsBabylab/add_pho
https://badshah.io/experiment/faster-nmap-scanning-with-the-help-of-gnu-parallel/ * GNU parallel使用笔记https://zhuanlan.zhihu.com/p/37340011
* Virtual Workshop: Running Jobs in Parallel on Savio https://ais.berkeley.edu/events/virtual-workshop-running-jobs-parallel-savio/2020-04-20
* Free Concurrency with GNU Parallel https://phili.pe/posts/free-concurrency-with-gnu-parallel/
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

View file

@ -1,114 +0,0 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20200322
Release: 1.3
License: GPL-3.0-or-later
Group: Productivity/File utilities
URL: ftp://ftp.gnu.org/gnu/parallel
Source0: %{name}_%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%description
GNU Parallel is a shell tool for executing jobs in parallel using one
or more computers. A job can be a single command or a small script
that has to be run for each of the lines in the input. The typical
input is a list of files, a list of hosts, a list of users, a list of
URLs, or a list of tables. A job can also be a command that reads from
a pipe. GNU Parallel can then split the input and pipe it into
commands in parallel.
If you use xargs and tee today you will find GNU Parallel very easy to
use as GNU Parallel is written to have the same options as xargs. If
you write loops in shell, you will find GNU Parallel may be able to
replace most of the loops and make them run faster by running several
jobs in parallel.
GNU Parallel makes sure output from the commands is the same output as
you would get had you run the commands sequentially. This makes it
possible to use output from GNU Parallel as input for other programs.
For each line of input GNU Parallel will execute command with the line
as arguments. If no command is given, the line of input is
executed. Several lines will be run in parallel. GNU Parallel can
often be used as a substitute for xargs or cat | bash.
%prep
if [ "${RPM_BUILD_ROOT}x" == "x" ]; then
echo "RPM_BUILD_ROOT empty, bad idea!"
exit 1
fi
if [ "${RPM_BUILD_ROOT}" == "/" ]; then
echo "RPM_BUILD_ROOT is set to "/", bad idea!"
exit 1
fi
%setup -q
%build
./configure
make
%install
rm -rf $RPM_BUILD_ROOT
make install prefix=$RPM_BUILD_ROOT%{_prefix} exec_prefix=$RPM_BUILD_ROOT%{_prefix} \
datarootdir=$RPM_BUILD_ROOT%{_prefix} docdir=$RPM_BUILD_ROOT%{_docdir} \
mandir=$RPM_BUILD_ROOT%{_mandir}
rm $RPM_BUILD_ROOT%{_docdir}/parallel.html
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.html
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.html
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.html
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.html
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.html
rm $RPM_BUILD_ROOT%{_docdir}/niceload.html
rm $RPM_BUILD_ROOT%{_docdir}/sem.html
rm $RPM_BUILD_ROOT%{_docdir}/sql.html
rm $RPM_BUILD_ROOT%{_docdir}/parcat.html
rm $RPM_BUILD_ROOT%{_docdir}/parset.html
rm $RPM_BUILD_ROOT%{_docdir}/parallel.texi
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.texi
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.texi
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.texi
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.texi
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.texi
rm $RPM_BUILD_ROOT%{_docdir}/niceload.texi
rm $RPM_BUILD_ROOT%{_docdir}/sem.texi
rm $RPM_BUILD_ROOT%{_docdir}/sql.texi
rm $RPM_BUILD_ROOT%{_docdir}/parcat.texi
rm $RPM_BUILD_ROOT%{_docdir}/parset.texi
rm $RPM_BUILD_ROOT%{_docdir}/parallel.pdf
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.pdf
rm $RPM_BUILD_ROOT%{_docdir}/niceload.pdf
rm $RPM_BUILD_ROOT%{_docdir}/sem.pdf
rm $RPM_BUILD_ROOT%{_docdir}/sql.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parcat.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parset.pdf
rm $RPM_BUILD_ROOT%{_docdir}/parallel_cheat_bw.pdf
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
/usr/bin/*
/usr/share/man/man1/*
/usr/share/man/man7/*
%doc README NEWS src/parallel.html src/env_parallel.html src/parallel_tutorial.html src/parallel_design.html src/parallel_alternatives.html src/parallel_book.html src/sem.html src/sql.html src/parcat.html src/parset.html src/niceload.html src/parallel.texi src/env_parallel.texi src/parallel_tutorial.texi src/parallel_design.texi src/parallel_alternatives.texi src/parallel_book.texi src/niceload.texi src/sem.texi src/sql.texi src/parcat.texi src/parset.texi src/parallel.pdf src/env_parallel.pdf src/parallel_tutorial.pdf src/parallel_design.pdf src/parallel_alternatives.pdf src/parallel_book.pdf src/niceload.pdf src/sem.pdf src/sql.pdf src/parcat.pdf src/parset.pdf src/parallel_cheat_bw.pdf
%changelog
* Sat Jan 22 2011 Ole Tange
- Upgrade to 20110122
* Wed Dec 22 2010 Ole Tange
- Upgrade to 20101222
* Wed Sep 22 2010 Ole Tange
- Upgrade to 20100922
* Mon Sep 06 2010 Ole Tange
- Upgrade to current git-version of source. Tested on build.opensuse.org
* Fri Aug 27 2010 Ole Tange
- Untested upgrade to current git-version of source.

View file

@ -1,8 +1,8 @@
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \ bin_SCRIPTS = parallel sql niceload parcat parset parsort \
env_parallel.ash env_parallel.bash env_parallel.csh \ env_parallel env_parallel.ash env_parallel.bash \
env_parallel.dash env_parallel.fish env_parallel.ksh \ env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.mksh env_parallel.pdksh env_parallel.sh \ env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.tcsh env_parallel.zsh env_parallel.sh env_parallel.tcsh env_parallel.zsh
install-exec-hook: install-exec-hook:
rm $(DESTDIR)$(bindir)/sem || true rm $(DESTDIR)$(bindir)/sem || true
@ -11,18 +11,18 @@ install-exec-hook:
if DOCUMENTATION if DOCUMENTATION
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
parallel_tutorial.7 parallel_book.7 parallel_design.7 \ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
parallel_alternatives.7 parcat.1 parset.1 parallel_alternatives.7 parcat.1 parset.1 parsort.1
doc_DATA = parallel.html env_parallel.html sem.html sql.html \ doc_DATA = parallel.html env_parallel.html sem.html sql.html \
niceload.html parallel_tutorial.html parallel_book.html \ niceload.html parallel_tutorial.html parallel_book.html \
parallel_design.html parallel_alternatives.html parcat.html \ parallel_design.html parallel_alternatives.html parcat.html \
parset.html \ parset.html parsort.html \
parallel.texi env_parallel.texi sem.texi sql.texi \ parallel.texi env_parallel.texi sem.texi sql.texi \
niceload.texi parallel_tutorial.texi parallel_book.texi \ niceload.texi parallel_tutorial.texi parallel_book.texi \
parallel_design.texi parallel_alternatives.texi parcat.texi \ parallel_design.texi parallel_alternatives.texi parcat.texi \
parset.texi \ parset.texi parsort.texi \
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \ parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \ parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
parallel_alternatives.pdf parcat.pdf parset.pdf \ parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
parallel_cheat_bw.pdf parallel_cheat_bw.pdf
endif endif
@ -94,6 +94,12 @@ parset.1: parset.pod
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \ && mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|| echo "Warning: pod2man not found. Using old parset.1" || echo "Warning: pod2man not found. Using old parset.1"
parsort.1: parsort
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \
|| echo "Warning: pod2man not found. Using old parsort.1"
parallel.html: parallel.pod parallel.html: parallel.pod
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \ pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \ && mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
@ -170,6 +176,13 @@ parset.html: parset.pod parcat.html
|| echo "Warning: pod2html not found. Using old parset.html" || echo "Warning: pod2html not found. Using old parset.html"
rm -f $(srcdir)/pod2htm* rm -f $(srcdir)/pod2htm*
# Depending on parset.html to avoid stupid pod2html race condition
parsort.html: parsort parset.html
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \
|| echo "Warning: pod2html not found. Using old parsort.html"
rm -f $(srcdir)/pod2htm*
parallel.texi: parallel.pod parallel.texi: parallel.pod
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \ pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|| echo "Warning: pod2texi not found. Using old parallel.texi" || echo "Warning: pod2texi not found. Using old parallel.texi"
@ -214,6 +227,10 @@ parset.texi: parset.pod
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \ pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|| echo "Warning: pod2texi not found. Using old parset.texi" || echo "Warning: pod2texi not found. Using old parset.texi"
parsort.texi: parsort
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \
|| echo "Warning: pod2texi not found. Using old parsort.texi"
parallel.pdf: parallel.pod parallel.pdf: parallel.pod
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \ pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
@ -258,6 +275,10 @@ parset.pdf: parset.pod
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \ pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|| echo "Warning: pod2pdf not found. Using old parset.pdf" || echo "Warning: pod2pdf not found. Using old parset.pdf"
parsort.pdf: parsort
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \
|| echo "Warning: pod2pdf not found. Using old parsort.pdf"
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \ libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf" || echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
@ -267,25 +288,25 @@ sem: parallel
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
parallel_tutorial.7 parallel_book.7 parallel_design.7 \ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
parallel_alternatives.7 parcat.1 parset.1 \ parallel_alternatives.7 parcat.1 parset.1 parsort.1 \
parallel.html env_parallel.html sem.html sql.html \ parallel.html env_parallel.html sem.html sql.html \
niceload.html parallel_tutorial.html parallel_book.html \ niceload.html parallel_tutorial.html parallel_book.html \
parallel_design.html parallel_alternatives.html parcat.html \ parallel_design.html parallel_alternatives.html parcat.html \
parset.html \ parset.html parsort.html parallel.texi env_parallel.texi \
parallel.texi env_parallel.texi sem.texi sql.texi \ sem.texi sql.texi niceload.texi parallel_tutorial.texi \
niceload.texi parallel_tutorial.texi parallel_book.texi \ parallel_book.texi parallel_design.texi \
parallel_design.texi parallel_alternatives.texi parcat.texi \ parallel_alternatives.texi parcat.texi parset.texi \
parset.texi \ parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \ niceload.pdf parallel_tutorial.pdf parallel_book.pdf \
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \ parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
parallel_alternatives.pdf parcat.pdf parset.pdf \ parset.pdf parsort.pdf parallel_cheat_bw.pdf
parallel_cheat_bw.pdf
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \ EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
env_parallel.ash env_parallel.bash env_parallel.csh \ env_parallel env_parallel.ash env_parallel.bash \
env_parallel.dash env_parallel.fish env_parallel.ksh \ env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.mksh env_parallel.pdksh env_parallel.sh \ env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \ env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
sem.pod parallel.pod env_parallel.pod niceload.pod \ parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
parallel_tutorial.pod parallel_book.pod parallel_design.pod \ parallel_tutorial.pod parallel_book.pod parallel_design.pod \
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES) parallel_alternatives.pod parallel_cheat_bw.fodt \
$(DISTCLEANFILES)

View file

@ -229,53 +229,53 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \ bin_SCRIPTS = parallel sql niceload parcat parset parsort \
env_parallel.ash env_parallel.bash env_parallel.csh \ env_parallel env_parallel.ash env_parallel.bash \
env_parallel.dash env_parallel.fish env_parallel.ksh \ env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.mksh env_parallel.pdksh env_parallel.sh \ env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.tcsh env_parallel.zsh env_parallel.sh env_parallel.tcsh env_parallel.zsh
@DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ @DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
@DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_book.7 parallel_design.7 \ @DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
@DOCUMENTATION_TRUE@ parallel_alternatives.7 parcat.1 parset.1 @DOCUMENTATION_TRUE@ parallel_alternatives.7 parcat.1 parset.1 parsort.1
@DOCUMENTATION_TRUE@doc_DATA = parallel.html env_parallel.html sem.html sql.html \ @DOCUMENTATION_TRUE@doc_DATA = parallel.html env_parallel.html sem.html sql.html \
@DOCUMENTATION_TRUE@ niceload.html parallel_tutorial.html parallel_book.html \ @DOCUMENTATION_TRUE@ niceload.html parallel_tutorial.html parallel_book.html \
@DOCUMENTATION_TRUE@ parallel_design.html parallel_alternatives.html parcat.html \ @DOCUMENTATION_TRUE@ parallel_design.html parallel_alternatives.html parcat.html \
@DOCUMENTATION_TRUE@ parset.html \ @DOCUMENTATION_TRUE@ parset.html parsort.html \
@DOCUMENTATION_TRUE@ parallel.texi env_parallel.texi sem.texi sql.texi \ @DOCUMENTATION_TRUE@ parallel.texi env_parallel.texi sem.texi sql.texi \
@DOCUMENTATION_TRUE@ niceload.texi parallel_tutorial.texi parallel_book.texi \ @DOCUMENTATION_TRUE@ niceload.texi parallel_tutorial.texi parallel_book.texi \
@DOCUMENTATION_TRUE@ parallel_design.texi parallel_alternatives.texi parcat.texi \ @DOCUMENTATION_TRUE@ parallel_design.texi parallel_alternatives.texi parcat.texi \
@DOCUMENTATION_TRUE@ parset.texi \ @DOCUMENTATION_TRUE@ parset.texi parsort.texi \
@DOCUMENTATION_TRUE@ parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \ @DOCUMENTATION_TRUE@ parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
@DOCUMENTATION_TRUE@ parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \ @DOCUMENTATION_TRUE@ parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
@DOCUMENTATION_TRUE@ parallel_alternatives.pdf parcat.pdf parset.pdf \ @DOCUMENTATION_TRUE@ parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
@DOCUMENTATION_TRUE@ parallel_cheat_bw.pdf @DOCUMENTATION_TRUE@ parallel_cheat_bw.pdf
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
parallel_tutorial.7 parallel_book.7 parallel_design.7 \ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
parallel_alternatives.7 parcat.1 parset.1 \ parallel_alternatives.7 parcat.1 parset.1 parsort.1 \
parallel.html env_parallel.html sem.html sql.html \ parallel.html env_parallel.html sem.html sql.html \
niceload.html parallel_tutorial.html parallel_book.html \ niceload.html parallel_tutorial.html parallel_book.html \
parallel_design.html parallel_alternatives.html parcat.html \ parallel_design.html parallel_alternatives.html parcat.html \
parset.html \ parset.html parsort.html parallel.texi env_parallel.texi \
parallel.texi env_parallel.texi sem.texi sql.texi \ sem.texi sql.texi niceload.texi parallel_tutorial.texi \
niceload.texi parallel_tutorial.texi parallel_book.texi \ parallel_book.texi parallel_design.texi \
parallel_design.texi parallel_alternatives.texi parcat.texi \ parallel_alternatives.texi parcat.texi parset.texi \
parset.texi \ parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \ niceload.pdf parallel_tutorial.pdf parallel_book.pdf \
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \ parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
parallel_alternatives.pdf parcat.pdf parset.pdf \ parset.pdf parsort.pdf parallel_cheat_bw.pdf
parallel_cheat_bw.pdf
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \ EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
env_parallel.ash env_parallel.bash env_parallel.csh \ env_parallel env_parallel.ash env_parallel.bash \
env_parallel.dash env_parallel.fish env_parallel.ksh \ env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.mksh env_parallel.pdksh env_parallel.sh \ env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \ env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
sem.pod parallel.pod env_parallel.pod niceload.pod \ parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
parallel_tutorial.pod parallel_book.pod parallel_design.pod \ parallel_tutorial.pod parallel_book.pod parallel_design.pod \
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES) parallel_alternatives.pod parallel_cheat_bw.fodt \
$(DISTCLEANFILES)
all: all-am all: all-am
@ -686,6 +686,12 @@ parset.1: parset.pod
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \ && mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|| echo "Warning: pod2man not found. Using old parset.1" || echo "Warning: pod2man not found. Using old parset.1"
parsort.1: parsort
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \
|| echo "Warning: pod2man not found. Using old parsort.1"
parallel.html: parallel.pod parallel.html: parallel.pod
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \ pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \ && mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
@ -762,6 +768,13 @@ parset.html: parset.pod parcat.html
|| echo "Warning: pod2html not found. Using old parset.html" || echo "Warning: pod2html not found. Using old parset.html"
rm -f $(srcdir)/pod2htm* rm -f $(srcdir)/pod2htm*
# Depending on parset.html to avoid stupid pod2html race condition
parsort.html: parsort parset.html
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \
|| echo "Warning: pod2html not found. Using old parsort.html"
rm -f $(srcdir)/pod2htm*
parallel.texi: parallel.pod parallel.texi: parallel.pod
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \ pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|| echo "Warning: pod2texi not found. Using old parallel.texi" || echo "Warning: pod2texi not found. Using old parallel.texi"
@ -806,6 +819,10 @@ parset.texi: parset.pod
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \ pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|| echo "Warning: pod2texi not found. Using old parset.texi" || echo "Warning: pod2texi not found. Using old parset.texi"
parsort.texi: parsort
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \
|| echo "Warning: pod2texi not found. Using old parsort.texi"
parallel.pdf: parallel.pod parallel.pdf: parallel.pod
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \ pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
@ -850,6 +867,10 @@ parset.pdf: parset.pod
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \ pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|| echo "Warning: pod2pdf not found. Using old parset.pdf" || echo "Warning: pod2pdf not found. Using old parset.pdf"
parsort.pdf: parsort
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \
|| echo "Warning: pod2pdf not found. Using old parsort.pdf"
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \ libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf" || echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"

View file

@ -23,7 +23,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20200323; $Global::version = 20200422;
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage(); get_options_from_array(\@ARGV) || die_usage();
if($opt::version) { if($opt::version) {

View file

@ -2150,7 +2150,7 @@ sub check_invalid_option_combinations() {
sub init_globals() { sub init_globals() {
# Defaults: # Defaults:
$Global::version = 20200323; $Global::version = 20200422;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$::name = "GNU Parallel"; $::name = "GNU Parallel";
$Global::infinity = 2**31; $Global::infinity = 2**31;
@ -5309,13 +5309,15 @@ sub qqx(@) {
# ssh with ssh-agent needs PATH SSH_AUTH_SOCK SSH_AGENT_PID # ssh with ssh-agent needs PATH SSH_AUTH_SOCK SSH_AGENT_PID
# ssh with Kerberos needs KRB5CCNAME # ssh with Kerberos needs KRB5CCNAME
# tmux needs LC_CTYPE # tmux needs LC_CTYPE
my @keep = qw(PATH SSH_AUTH_SOCK SSH_AGENT_PID KRB5CCNAME LC_CTYPE); # lsh needs LOGNAME HOME
my @keep = qw(PATH SSH_AUTH_SOCK SSH_AGENT_PID KRB5CCNAME LC_CTYPE HOME LOGNAME);
@env{@keep} = @ENV{@keep}; @env{@keep} = @ENV{@keep};
local %ENV; local %ENV;
%ENV = %env; %ENV = %env;
if($Global::debug) { if($Global::debug) {
return qx{ @_ && true }; return qx{ @_ && true };
} else { } else {
if($^O eq "cygwin") {
# CygWin does not respect 2>/dev/null # CygWin does not respect 2>/dev/null
# so we do that by hand # so we do that by hand
open my $original_stderr, ">&", "STDERR" or open my $original_stderr, ">&", "STDERR" or
@ -5327,6 +5329,9 @@ sub qqx(@) {
open STDERR, ">&", $original_stderr or open STDERR, ">&", $original_stderr or
::die_bug("Can't dup STDERR: $!"); ::die_bug("Can't dup STDERR: $!");
return wantarray ? @ret : join "",@ret; return wantarray ? @ret : join "",@ret;
} else {
return qx{ ( @_ ) 2>/dev/null };
}
} }
} }
@ -5578,7 +5583,6 @@ sub which(@) {
# Returns: # Returns:
# @full_path = full paths to @programs. Nothing if not found # @full_path = full paths to @programs. Nothing if not found
my @which; my @which;
::debug("which", "@_ in $ENV{'PATH'}\n");
for my $prg (@_) { for my $prg (@_) {
push(@which, grep { not -d $_ and -x $_ } push(@which, grep { not -d $_ and -x $_ }
map { $_."/".$prg } split(":",$ENV{'PATH'})); map { $_."/".$prg } split(":",$ENV{'PATH'}));
@ -5587,6 +5591,7 @@ sub which(@) {
push(@which, grep { not -d $_ and -x $_ } $prg); push(@which, grep { not -d $_ and -x $_ } $prg);
} }
} }
::debug("which", "$which[0] in $ENV{'PATH'}\n");
return wantarray ? @which : $which[0]; return wantarray ? @which : $which[0];
} }
@ -7158,6 +7163,7 @@ sub ncpus($) {
} }
} else { } else {
my $ncpu; my $ncpu;
::debug("init","echo|$sshcmd $serverlogin -- parallel --number-of-sockets");
if($opt::use_sockets_instead_of_threads if($opt::use_sockets_instead_of_threads
or or
$opt::use_cpus_instead_of_cores) { $opt::use_cpus_instead_of_cores) {

View file

@ -53,35 +53,52 @@ the line as arguments. If no I<command> is given, the line of input is
executed. Several lines will be run in parallel. GNU B<parallel> can executed. Several lines will be run in parallel. GNU B<parallel> can
often be used as a substitute for B<xargs> or B<cat | bash>. often be used as a substitute for B<xargs> or B<cat | bash>.
=head2 Reader's guide =head2 Reader's guide
GNU B<parallel> includes the 4 types of documentation: Tutorial,
how-to, reference and explanation.
=head3 Tutorial
If you prefer reading a book buy B<GNU Parallel 2018> at If you prefer reading a book buy B<GNU Parallel 2018> at
http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
or download it at: https://doi.org/10.5281/zenodo.1146014 or download it at: https://doi.org/10.5281/zenodo.1146014 Read at
least chapter 1+2. It should take you less than 20 minutes.
Otherwise start by watching the intro videos for a quick introduction: Otherwise start by watching the intro videos for a quick introduction:
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1 http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
If you need a one page printable cheat sheet you can find it on: If you want to dive deeper: spend a couple of hours walking through
https://www.gnu.org/software/parallel/parallel_cheat.pdf the tutorial (B<man parallel_tutorial>). Your command line will love
you for it.
=head3 How-to
You can find a lot of B<EXAMPLE>s of use after the list of B<OPTIONS> You can find a lot of B<EXAMPLE>s of use after the list of B<OPTIONS>
in B<man parallel> (Use B<LESS=+/EXAMPLE: man parallel>). That will in B<man parallel> (Use B<LESS=+/EXAMPLE: man parallel>). That will
give you an idea of what GNU B<parallel> is capable of, and you may give you an idea of what GNU B<parallel> is capable of, and you may
find a solution you can simply adapt to your situation. find a solution you can simply adapt to your situation.
If you want to dive even deeper: spend a couple of hours walking
through the tutorial (B<man parallel_tutorial>). Your command line
will love you for it.
Finally you may want to look at the rest of the manual (B<man =head3 Reference
parallel>) if you have special needs not already covered.
If you need a one page printable cheat sheet you can find it on:
https://www.gnu.org/software/parallel/parallel_cheat.pdf
The man page is the reference for all options.
=head3 Design discussion
If you want to know the design decisions behind GNU B<parallel>, try: If you want to know the design decisions behind GNU B<parallel>, try:
B<man parallel_design>. This is also a good intro if you intend to B<man parallel_design>. This is also a good intro if you intend to
change GNU B<parallel>. change GNU B<parallel>.
=head1 OPTIONS =head1 OPTIONS
=over 4 =over 4
@ -2333,7 +2350,8 @@ E.g.
sql:oracle://scott:tiger@ora.example.com/xe/parjob sql:oracle://scott:tiger@ora.example.com/xe/parjob
postgresql://scott:tiger@pg.example.com/pgdb/parjob postgresql://scott:tiger@pg.example.com/pgdb/parjob
pg:///parjob pg:///parjob
sqlite3:///pardb/parjob sqlite3:///pardb/parjob.sqlite
csv:///%2Ftmp%2Fmydir/jobtable
It can also be an alias from ~/.sql/aliases: It can also be an alias from ~/.sql/aliases:
@ -4152,39 +4170,40 @@ the columns. To keep the spaces:
GNU B<parallel> can output to a database table and a CSV-file: GNU B<parallel> can output to a database table and a CSV-file:
DBURL=csv:///%2Ftmp%2Fmy.csv dburl=csv:///%2Ftmp%2Fmydir
DBTABLEURL=$DBURL/mytable dbtableurl=$dburl/mytable.csv
parallel --sqlandworker $DBTABLEURL seq ::: {1..10} parallel --sqlandworker $dbtableurl seq ::: {1..10}
It is rather slow and takes up a lot of CPU time because GNU It is rather slow and takes up a lot of CPU time because GNU
B<parallel> parses the whole CSV file for each update. B<parallel> parses the whole CSV file for each update.
A better approach is to use an SQLite-base and then convert that to CSV: A better approach is to use an SQLite-base and then convert that to CSV:
DBURL=sqlite3:///%2Ftmp%2Fmy.sqlite dburl=sqlite3:///%2Ftmp%2Fmy.sqlite
DBTABLEURL=$DBURL/mytable dbtableurl=$dburl/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10} parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql $DBURL '.headers on' '.mode csv' 'SELECT * FROM mytable;' sql $dburl '.headers on' '.mode csv' 'SELECT * FROM mytable;'
This takes around a second per job. This takes around a second per job.
If you have access to a real database system, such as PostgreSQL, it If you have access to a real database system, such as PostgreSQL, it
is even faster: is even faster:
DBURL=pg://user:pass@host/mydb dburl=pg://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable dbtableurl=$dburl/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10} parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql $DBURL \ sql $dburl \
"COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;" "COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;"
Or MySQL: Or MySQL:
DBURL=mysql://user:pass@host/mydb dburl=mysql://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable dbtableurl=$dburl/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10} parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql -p -B $DBURL "SELECT * FROM mytable;" > mytable.tsv sql -p -B $dburl "SELECT * FROM mytable;" > mytable.tsv
perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/; s/\\\\/\\/g; perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/;
s/\\t/\t/g; s/\\n/\n/g;' mytable.tsv %s=("\\" => "\\", "t" => "\t", "n" => "\n");
s/\\([\\tn])/$s{$1}/g;' mytable.tsv
=head1 EXAMPLE: Output to CSV-file for R =head1 EXAMPLE: Output to CSV-file for R

View file

@ -54,6 +54,7 @@ B<Outputs>
O7. Buffering on disk O7. Buffering on disk
O8. Cleanup of file if killed O8. Cleanup of file if killed
O9. Test if disk runs full during run O9. Test if disk runs full during run
O10. Output of a line bigger than 4 GB
B<Execution> B<Execution>
E1. Running jobs in parallel E1. Running jobs in parallel
@ -91,7 +92,7 @@ BUGS).
parallel: parallel:
I1 I2 I3 I4 I5 I6 I7 I1 I2 I3 I4 I5 I6 I7
M1 M2 M3 M4 M5 M6 M1 M2 M3 M4 M5 M6
O1 O2 O3 O4 O5 O6 O7 O8 O9 O1 O2 O3 O4 O5 O6 O7 O8 O9 O10
E1 E2 E3 E4 E5 E6 E7 E1 E2 E3 E4 E5 E6 E7
R1 R2 R3 R4 R5 R6 R7 R8 R9 R1 R2 R3 R4 R5 R6 R7 R8 R9
S1 S2 S1 S2
@ -2348,12 +2349,157 @@ You can then do:
https://github.com/lotabout/rargs (Last checked: 2020-01) https://github.com/lotabout/rargs (Last checked: 2020-01)
=head2 DIFFERENCES BETWEEN threader AND GNU Parallel
Summary table (see legend above):
I1 - - - - - -
M1 - M3 - - M6
O1 - O3 - O5 - - N/A N/A
E1 - - E4 - - -
- - - - - - - - -
- -
Newline separates arguments, but newline at the end of file is treated
as an empty argument. So this runs 2 jobs:
echo two_jobs | threader -run 'echo "$THREADID"'
B<threader> ignores stderr, so any output to stderr is
lost. B<threader> buffers in RAM, so output bigger than the machine's
virtual memory will cause the machine to crash.
https://github.com/voodooEntity/threader (Last checked: 2020-04)
=head2 DIFFERENCES BETWEEN runp AND GNU Parallel
Summary table (see legend above):
I1 I2 - - - - -
M1 - (M3) - - M6
O1 O2 O3 - O5 O6 - N/A N/A -
E1 - - - - - -
- - - - - - - - -
- -
(M3): You can add a prefix and a postfix to the input, so it means you can
only insert the argument on the command line once.
B<runp> runs 10 jobs in parallel by default. B<runp> blocks if output
of a command is > 64 Kbytes. Quoting of input is needed. It adds
output to stderr (this can be prevented with -q)
=head3 Examples as GNU Parallel
base='https://images-api.nasa.gov/search'
query='jupiter'
desc='planet'
type='image'
url="$base?q=$query&description=$desc&media_type=$type"
# Download the images in parallel using runp
curl -s $url | jq -r .collection.items[].href | \
runp -p 'curl -s' | jq -r .[] | grep large | \
runp -p 'curl -s -L -O'
time curl -s $url | jq -r .collection.items[].href | \
runp -g 1 -q -p 'curl -s' | jq -r .[] | grep large | \
runp -g 1 -q -p 'curl -s -L -O'
# Download the images in parallel
curl -s $url | jq -r .collection.items[].href | \
parallel curl -s | jq -r .[] | grep large | \
parallel curl -s -L -O
time curl -s $url | jq -r .collection.items[].href | \
parallel -j 1 curl -s | jq -r .[] | grep large | \
parallel -j 1 curl -s -L -O
=head4 Run some test commands (read from file)
# Create a file containing commands to run in parallel.
cat << EOF > /tmp/test-commands.txt
sleep 5
sleep 3
blah # this will fail
ls $PWD # PWD shell variable is used here
EOF
# Run commands from the file.
runp /tmp/test-commands.txt > /dev/null
parallel -a /tmp/test-commands.txt > /dev/null
=head4 Ping several hosts and see packet loss (read from stdin)
# First copy this line and press Enter
runp -p 'ping -c 5 -W 2' -s '| grep loss'
localhost
1.1.1.1
8.8.8.8
# Press Enter and Ctrl-D when done entering the hosts
# First copy this line and press Enter
parallel ping -c 5 -W 2 {} '| grep loss'
localhost
1.1.1.1
8.8.8.8
# Press Enter and Ctrl-D when done entering the hosts
=head4 Get directories' sizes (read from stdin)
echo -e "$HOME\n/etc\n/tmp" | runp -q -p 'sudo du -sh'
echo -e "$HOME\n/etc\n/tmp" | parallel sudo du -sh
# or:
parallel sudo du -sh ::: "$HOME" /etc /tmp
=head4 Compress files
find . -iname '*.txt' | runp -p 'gzip --best'
find . -iname '*.txt' | parallel gzip --best
=head4 Measure HTTP request + response time
export CURL="curl -w 'time_total: %{time_total}\n'"
CURL="$CURL -o /dev/null -s https://golang.org/"
perl -wE 'for (1..10) { say $ENV{CURL} }' |
runp -q # Make 10 requests
perl -wE 'for (1..10) { say $ENV{CURL} }' | parallel
# or:
parallel -N0 "$CURL" ::: {1..10}
=head4 Find open TCP ports
cat << EOF > /tmp/host-port.txt
localhost 22
localhost 80
localhost 81
127.0.0.1 443
127.0.0.1 444
scanme.nmap.org 22
scanme.nmap.org 23
scanme.nmap.org 443
EOF
cat /tmp/host-port.txt | \
runp -q -p 'netcat -v -w2 -z' 2>&1 | egrep '(succeeded!|open)$'
# --colsep is needed to split the line
cat /tmp/host-port.txt | \
parallel --colsep ' ' netcat -v -w2 -z 2>&1 | egrep '(succeeded!|open)$'
# or use uq for unquoted:
cat /tmp/host-port.txt | \
parallel netcat -v -w2 -z {=uq=} 2>&1 | egrep '(succeeded!|open)$'
https://github.com/jreisinger/runp (Last checked: 2020-04)
=head2 Todo =head2 Todo
https://pypi.org/project/papply/ https://pypi.org/project/papply/
https://github.com/jreisinger/runp
https://github.com/JeiKeiLim/simple_distribute_job https://github.com/JeiKeiLim/simple_distribute_job
https://github.com/reggi/pkgrun https://github.com/reggi/pkgrun
@ -2603,6 +2749,22 @@ Some tools become very slow if output lines have many words.
# Run 30 jobs in parallel # Run 30 jobs in parallel
seq 30 | time $paralleltool -j0 ./mycommand > /dev/null seq 30 | time $paralleltool -j0 ./mycommand > /dev/null
=head2 4GB: Output with a line > 4GB should be OK
#!/bin/bash
paralleltool="parallel -j0"
cat <<-EOF > mycommand
#!/bin/bash
perl -e '\$a="a"x1000_000; for(1..5000) { print \$a }'
EOF
chmod +x mycommand
# Run 1 job
seq 1 | $paralleltool ./mycommand | LC_ALL=C wc
=head1 AUTHOR =head1 AUTHOR

View file

@ -2243,7 +2243,7 @@ the output each in their own column.
The simplest is to use a CSV file as the storage table: The simplest is to use a CSV file as the storage table:
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \ parallel --sqlandworker csv:///%2Ftmp/log.csv \
seq ::: 10 ::: 12 13 14 seq ::: 10 ::: 12 13 14
cat /tmp/log.csv cat /tmp/log.csv
@ -2274,7 +2274,7 @@ format correctly - even with fields containing newlines as above.
If the output is big you may want to put it into files using B<--results>: If the output is big you may want to put it into files using B<--results>:
parallel --results outdir --sqlandworker csv:////%2Ftmp%2Flog2.csv \ parallel --results outdir --sqlandworker csv:///%2Ftmp/log2.csv \
seq ::: 10 ::: 12 13 14 seq ::: 10 ::: 12 13 14
cat /tmp/log2.csv cat /tmp/log2.csv
@ -2303,7 +2303,7 @@ Example:
mysql://scott:tiger@my.example.com/mydatabase/mytable mysql://scott:tiger@my.example.com/mydatabase/mytable
postgresql://scott:tiger@pg.example.com/mydatabase/mytable postgresql://scott:tiger@pg.example.com/mydatabase/mytable
sqlite3:///%2Ftmp%2Fmydatabase/mytable sqlite3:///%2Ftmp%2Fmydatabase/mytable
csv:////%2Ftmp%2Flog.csv csv:///%2Ftmp/log.csv
To refer to B</tmp/mydatabase> with B<sqlite> or B<csv> you need to To refer to B</tmp/mydatabase> with B<sqlite> or B<csv> you need to
encode the B</> as B<%2F>. encode the B</> as B<%2F>.

View file

@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20200323; $Global::version = 20200422;
$Global::progname = 'sql'; $Global::progname = 'sql';
# This must be done first as this may exec myself # This must be done first as this may exec myself

View file

@ -5,13 +5,17 @@ unset TIMEOUT
env_parallel --session env_parallel --session
host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null) host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null)
echo $host >&2 if [ -z "$host" ] ; then
echo Error: no android host working
else
echo $host >&2
doit() { doit() {
export PARALLEL_SSH='ssh -p2222' export PARALLEL_SSH='ssh -p2222'
parallel -k echo ::: Basic usage works parallel -k echo ::: Basic usage works
parallel -k -S localhost echo ::: Remote usage works parallel -k -S localhost echo ::: Remote usage works
} }
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
env_parallel -S $host doit ::: a env_parallel -S $host doit ::: a
fi

View file

@ -86,9 +86,12 @@ par_verbose_t() {
par_show_limits() { par_show_limits() {
echo '### Test --show-limits' echo '### Test --show-limits'
(
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar (echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
(echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar (echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar
echo "### BUG: empty lines with --show-limit"
echo | stdout parallel --show-limits
) | perl -pe 's/131\d\d\d/131xxx/'
} }
par_test_zero_args() { par_test_zero_args() {
@ -746,7 +749,7 @@ par_unquote_replacement_string() {
par_delimiter_space() { par_delimiter_space() {
echo '### Does space as delimiter work?' echo '### Does space as delimiter work?'
parallel -d " " echo ::: "1 done" parallel -k -d " " echo ::: "1 done"
} }
par_recend_not_regexp() { par_recend_not_regexp() {

View file

@ -190,8 +190,9 @@ par_bug57364() {
j=32 j=32
set -e set -e
for i in $(seq 1 50); do for i in $(seq 1 50); do
# Clear cache. # Clear cache (simple 'rm -rf' causes race condition)
rm -rf "${HOME}/.parallel/tmp" mv "${HOME}/.parallel/tmp" "${HOME}/.parallel/tmp-$$" &&
rm -rf "${HOME}/.parallel/tmp-$$"
# Try to launch multiple parallel simultaneously. # Try to launch multiple parallel simultaneously.
seq $j | seq $j |
xargs -P $j -n 1 parallel true $i ::: xargs -P $j -n 1 parallel true $i :::
@ -311,13 +312,20 @@ par_no_newline_compress() {
par_max_length_len_128k() { par_max_length_len_128k() {
echo "### BUG: The length for -X is not close to max (131072)" echo "### BUG: The length for -X is not close to max (131072)"
(
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc seq 1 60000 | perl -pe 's/$/.gif/' |
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo a{}b{}c |head -n 1 |wc parallel -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} | head -n 1 | wc -c
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo |head -n 1 |wc seq 1 60000 | perl -pe 's/$/.gif/' |
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo a{}b{}c {} |head -n 1 |wc parallel -X echo a{}b{}c | head -n 1 | wc -c
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {}aa{} |head -n 1 |wc seq 1 60000 | perl -pe 's/$/.gif/' |
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {} aa {} |head -n 1 |wc parallel -X echo | head -n 1 | wc -c
seq 1 60000 | perl -pe 's/$/.gif/' |
parallel -X echo a{}b{}c {} | head -n 1 | wc -c
seq 1 60000 | perl -pe 's/$/.gif/' |
parallel -X echo {}aa{} | head -n 1 | wc -c
seq 1 60000 | perl -pe 's/$/.gif/' |
parallel -X echo {} aa {} | head -n 1 | wc -c
) | perl -pe 's/131\d\d\d/131xxx/g'
} }
par_round_robin_blocks() { par_round_robin_blocks() {

View file

@ -0,0 +1,105 @@
#!/bin/bash
setup() {
tmp=$(tempfile)
perl -pe 's/\n/\n\0/' >$tmp <<EOF
chr1 1 Sample 1
chr1 11 Sample 1
chr1 111 Sample 1
chr1 1111 Sample 1
chr1 11111 Sample 1
chr1 111111 Sample 1
chr2 1 Sample 1
chr2 22 Sample 1
chr2 111 Sample 1
chr2 2222 Sample 1
chr2 11111 Sample 1
chr2 111111 Sample 1
chr10 1 Sample 1
chr10 11 Sample 1
chr10 111 Sample 1
chr10 1111 Sample 1
chr10 11111 Sample 1
chr10 111111 Sample 1
chr1 1 Sample 2
chr1 11 Sample 2
chr1 111 Sample 2
chr1 1111 Sample 2
chr1 11111 Sample 2
chr1 111111 Sample 2
chr2 1 Sample 2
chr2 22 Sample 2
chr2 111 Sample 2
chr2 2222 Sample 2
chr2 11111 Sample 2
chr2 111111 Sample 2
chr10 1 Sample 2
chr10 11 Sample 2
chr10 111 Sample 2
chr10 1111 Sample 2
chr10 11111 Sample 2
chr10 111111 Sample 2
chr1 1 Sample 10
chr1 11 Sample 10
chr1 111 Sample 10
chr1 1111 Sample 10
chr1 11111 Sample 10
chr1 111111 Sample 10
chr2 1 Sample 10
chr2 22 Sample 10
chr2 111 Sample 10
chr2 2222 Sample 10
chr2 11111 Sample 10
chr2 111111 Sample 10
chr10 1 Sample 10
chr10 11 Sample 10
chr10 111 Sample 10
chr10 1111 Sample 10
chr10 11111 Sample 10
chr10 111111 Sample 10
EOF
export tmp
}
parsort_test() {
echo "### parsort $@"
parsort "$@" $tmp | md5sum
sort "$@" $tmp | md5sum
parsort "$@" < $tmp | md5sum
sort "$@" < $tmp | md5sum
}
export -f parsort_test
par_normal() { parsort_test; }
par_n() { parsort_test -n; }
par_r() { parsort_test -r; }
par_nr() { parsort_test -nr; }
par_z() { parsort_test -z; }
par_k2() { parsort_test -k2n; }
par_k2r() { parsort_test -k2nr; }
par_k3() { parsort_test -k3; }
par_k3r() { parsort_test -k3r; }
par_dummy() {
parsort_test --random-source=`which parallel` --batch-size=10 \
--compress-program=gzip --temporary-directory=/var/tmp \
--parallel=8 --unique
# TODO
# files0=$(tempfile)
# echo $tmp > $files0
# --files0-from=$files0
}
setup
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | LC_ALL=C sort |
parallel --timeout 10000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'

View file

@ -72,7 +72,9 @@ par_command_len_shellquote() {
} }
export -f outer export -f outer
parallel --tag -k outer ::: '-Slo -j10' '' stdout parallel --tag -k outer ::: '-Slo -j10' '' |
perl -pe 's/131\d\d\d/131xxx/g';
} }
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)

View file

@ -170,9 +170,6 @@ nice parallel -j1 -I :: -X echo 'a::b::^c::[.}c' ::: 1
echo "### BUG: The length for -X is not close to max (131072)" echo "### BUG: The length for -X is not close to max (131072)"
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
echo "### BUG: empty lines with --show-limit"
echo | $NICEPAR --show-limits
echo '### Test -N' echo '### Test -N'
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3} seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}

View file

@ -23,8 +23,9 @@ export PARALLEL_SSH="ssh -oLogLevel=quiet"
# select a running master (debian-ppc, suse, ubuntu, redhat, or debian) # select a running master (debian-ppc, suse, ubuntu, redhat, or debian)
# 2019-06-25 debian has too little free memory (and swap) # 2019-06-25 debian has too little free memory (and swap)
# 2020-04-22 debian-ppc has read-only disk
MASTER=$(parallel -j0 --delay 0.1 --halt now,success=1 $PARALLEL_SSH {} echo {} \ MASTER=$(parallel -j0 --delay 0.1 --halt now,success=1 $PARALLEL_SSH {} echo {} \
::: {debian-ppc,ubuntu,suse,redhat}.polarhome.com) ::: {ubuntu,suse,redhat}.polarhome.com)
parallel -j0 --delay 0.1 --retries $RETRIES \ parallel -j0 --delay 0.1 --retries $RETRIES \
rsync -L /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \ rsync -L /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \

View file

@ -774,8 +774,8 @@ par_sem_quote ### sem --quote should not add empty argument
par_sem_quote echo par_sem_quote echo
par_sem_quote par_sem_quote
par_show_limits ### Test --show-limits par_show_limits ### Test --show-limits
par_show_limits Maximal size of command: 131049 par_show_limits Maximal size of command: 131xxx
par_show_limits Maximal used size of command: 131049 par_show_limits Maximal used size of command: 131xxx
par_show_limits par_show_limits
par_show_limits Execution of will continue now, and it will try to read its input par_show_limits Execution of will continue now, and it will try to read its input
par_show_limits and run commands; if this is not what you wanted to happen, please par_show_limits and run commands; if this is not what you wanted to happen, please
@ -783,13 +783,20 @@ par_show_limits press CTRL-D or CTRL-C
par_show_limits bar par_show_limits bar
par_show_limits car par_show_limits car
par_show_limits far par_show_limits far
par_show_limits Maximal size of command: 131049 par_show_limits Maximal size of command: 131xxx
par_show_limits Maximal used size of command: 100 par_show_limits Maximal used size of command: 100
par_show_limits par_show_limits
par_show_limits Execution of will continue now, and it will try to read its input par_show_limits Execution of will continue now, and it will try to read its input
par_show_limits and run commands; if this is not what you wanted to happen, please par_show_limits and run commands; if this is not what you wanted to happen, please
par_show_limits press CTRL-D or CTRL-C par_show_limits press CTRL-D or CTRL-C
par_show_limits bar car far par_show_limits bar car far
par_show_limits ### BUG: empty lines with --show-limit
par_show_limits Maximal size of command: 131xxx
par_show_limits Maximal used size of command: 131xxx
par_show_limits
par_show_limits Execution of will continue now, and it will try to read its input
par_show_limits and run commands; if this is not what you wanted to happen, please
par_show_limits press CTRL-D or CTRL-C
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks 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 This should take a few ms, but took more than 2 hours
par_slow_pipe_regexp 980 981 5881 par_slow_pipe_regexp 980 981 5881

View file

@ -209,16 +209,16 @@ par_test_build_and_install Making install in src
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset 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 '/tmp/parallel-install/bin' par_test_build_and_install /usr/bin/install -c parallel 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 '/tmp/parallel-install/bin'
par_test_build_and_install make install-exec-hook par_test_build_and_install make install-exec-hook
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.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_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1' par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
@ -469,7 +469,7 @@ par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset 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 '/tmp/parallel-install/bin' par_test_build_and_install /usr/bin/install -c parallel 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 '/tmp/parallel-install/bin'
par_test_build_and_install make install-exec-hook par_test_build_and_install make install-exec-hook
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
@ -630,7 +630,7 @@ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset
par_test_build_and_install /bin/bash: pod2pdf: command not found par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel' par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.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_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install pod2man --release='00000000' --center='parallel' \ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \ par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \ par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
@ -698,7 +698,7 @@ par_test_build_and_install || echo "Warning: pod2man not found. Using old parset
par_test_build_and_install /bin/bash: pod2man: command not found par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parset.1 par_test_build_and_install Warning: pod2man not found. Using old parset.1
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1' par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7' par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7' par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src' par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'

View file

@ -1285,12 +1285,12 @@ par_macron
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
par_max_length_len_128k ### BUG: The length for -X is not close to max (131072) par_max_length_len_128k ### BUG: The length for -X is not close to max (131072)
par_max_length_len_128k 1 8293 131004 par_max_length_len_128k 131xxx
par_max_length_len_128k 1 6662 131026 par_max_length_len_128k 131xxx
par_max_length_len_128k 1 14215 131044 par_max_length_len_128k 131xxx
par_max_length_len_128k 1 9266 131036 par_max_length_len_128k 131xxx
par_max_length_len_128k 1 7013 131033 par_max_length_len_128k 131xxx
par_max_length_len_128k 1 14807 131043 par_max_length_len_128k 131xxx
par_memfree ### test memfree - it should be killed by timeout par_memfree ### test memfree - it should be killed by timeout
par_memfree Free mem: 1k par_memfree Free mem: 1k
par_memfree parallel: Warning: This job was killed because it timed out: par_memfree parallel: Warning: This job was killed because it timed out:

View file

@ -0,0 +1,50 @@
par_dummy ### parsort --random-source=/usr/local/bin/parallel --batch-size=10 --compress-program=gzip --temporary-directory=/var/tmp --parallel=8 --unique
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
par_k2 ### parsort -k2n
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
par_k2r ### parsort -k2nr
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
par_k3 ### parsort -k3
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
par_k3r ### parsort -k3r
par_k3r f37c643ab666523d9075b8848a6aed9b -
par_k3r f37c643ab666523d9075b8848a6aed9b -
par_k3r f37c643ab666523d9075b8848a6aed9b -
par_k3r f37c643ab666523d9075b8848a6aed9b -
par_n ### parsort -n
par_n b6f9cd356e6ca6505ba55596b3bed255 -
par_n b6f9cd356e6ca6505ba55596b3bed255 -
par_n b6f9cd356e6ca6505ba55596b3bed255 -
par_n b6f9cd356e6ca6505ba55596b3bed255 -
par_normal ### parsort
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
par_nr ### parsort -nr
par_nr deb3b52408074435b24fda0e3f624799 -
par_nr deb3b52408074435b24fda0e3f624799 -
par_nr deb3b52408074435b24fda0e3f624799 -
par_nr deb3b52408074435b24fda0e3f624799 -
par_r ### parsort -r
par_r deb3b52408074435b24fda0e3f624799 -
par_r deb3b52408074435b24fda0e3f624799 -
par_r deb3b52408074435b24fda0e3f624799 -
par_r deb3b52408074435b24fda0e3f624799 -
par_z ### parsort -z
par_z 583c59e3574e550f6810d0ad20e7ab88 -
par_z 507d17cd3d746cdeeccdb8ad11860181 -
par_z 507d17cd3d746cdeeccdb8ad11860181 -
par_z 507d17cd3d746cdeeccdb8ad11860181 -

View file

@ -6,9 +6,7 @@ par_pipe_retries 134362 134362 940534
par_pipe_retries localhost-: par_pipe_retries localhost-:
par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin. par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin.
par_lsh ### --ssh lsh par_lsh ### --ssh lsh
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
par_lsh OK par_lsh OK
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
par_lsh OK par_lsh OK
par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin
par_input_loss_pipe 1 10000 48894 par_input_loss_pipe 1 10000 48894
@ -219,58 +217,58 @@ par_command_len_shellquote -Slo -j10 ' 10 7 1 1 41545
par_command_len_shellquote -Slo -j10 ' 10 8 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 par_command_len_shellquote -Slo -j10 ' 10 9 0 0 0
par_command_len_shellquote -Slo -j10 ' 10 10 0 0 0 par_command_len_shellquote -Slo -j10 ' 10 10 0 0 0
par_command_len_shellquote -Slo -j10 " 1 10 parallel: Error: Command line too long (295245 >= 131049) at input 0: " par_command_len_shellquote -Slo -j10 " 1 10 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: "
par_command_len_shellquote -Slo -j10 " 2 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: "" par_command_len_shellquote -Slo -j10 " 2 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ""
par_command_len_shellquote -Slo -j10 " 2 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: "" par_command_len_shellquote -Slo -j10 " 2 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ""
par_command_len_shellquote -Slo -j10 " 3 9 parallel: Error: Command line too long (295245 >= 131049) at input 0: """ par_command_len_shellquote -Slo -j10 " 3 9 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: """
par_command_len_shellquote -Slo -j10 " 3 10 parallel: Error: Command line too long (885735 >= 131049) at input 0: """ par_command_len_shellquote -Slo -j10 " 3 10 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: """
par_command_len_shellquote -Slo -j10 " 4 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: """" par_command_len_shellquote -Slo -j10 " 4 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: """"
par_command_len_shellquote -Slo -j10 " 4 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: """" par_command_len_shellquote -Slo -j10 " 4 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: """"
par_command_len_shellquote -Slo -j10 " 4 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: """" par_command_len_shellquote -Slo -j10 " 4 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: """"
par_command_len_shellquote -Slo -j10 " 5 8 parallel: Error: Command line too long (164025 >= 131049) at input 0: """"" par_command_len_shellquote -Slo -j10 " 5 8 parallel: Error: Command line too long (164025 >= 131xxx) at input 0: """""
par_command_len_shellquote -Slo -j10 " 5 9 parallel: Error: Command line too long (492075 >= 131049) at input 0: """"" par_command_len_shellquote -Slo -j10 " 5 9 parallel: Error: Command line too long (492075 >= 131xxx) at input 0: """""
par_command_len_shellquote -Slo -j10 " 5 10 parallel: Error: Command line too long (1476225 >= 131049) at input 0: """"" par_command_len_shellquote -Slo -j10 " 5 10 parallel: Error: Command line too long (1476225 >= 131xxx) at input 0: """""
par_command_len_shellquote -Slo -j10 " 6 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: """""" par_command_len_shellquote -Slo -j10 " 6 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """"""
par_command_len_shellquote -Slo -j10 " 6 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: """""" par_command_len_shellquote -Slo -j10 " 6 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """"""
par_command_len_shellquote -Slo -j10 " 6 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """""" par_command_len_shellquote -Slo -j10 " 6 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """"""
par_command_len_shellquote -Slo -j10 " 7 8 parallel: Error: Command line too long (229635 >= 131049) at input 0: """"""" par_command_len_shellquote -Slo -j10 " 7 8 parallel: Error: Command line too long (229635 >= 131xxx) at input 0: """""""
par_command_len_shellquote -Slo -j10 " 7 9 parallel: Error: Command line too long (688905 >= 131049) at input 0: """"""" par_command_len_shellquote -Slo -j10 " 7 9 parallel: Error: Command line too long (688905 >= 131xxx) at input 0: """""""
par_command_len_shellquote -Slo -j10 " 7 10 parallel: Error: Command line too long (2066715 >= 131049) at input 0: """"""" par_command_len_shellquote -Slo -j10 " 7 10 parallel: Error: Command line too long (2066715 >= 131xxx) at input 0: """""""
par_command_len_shellquote -Slo -j10 " 8 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: """""""" par_command_len_shellquote -Slo -j10 " 8 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: """"""""
par_command_len_shellquote -Slo -j10 " 8 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: """""""" par_command_len_shellquote -Slo -j10 " 8 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: """"""""
par_command_len_shellquote -Slo -j10 " 8 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: """""""" par_command_len_shellquote -Slo -j10 " 8 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: """"""""
par_command_len_shellquote -Slo -j10 " 9 8 parallel: Error: Command line too long (295245 >= 131049) at input 0: """"""""" par_command_len_shellquote -Slo -j10 " 9 8 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: """""""""
par_command_len_shellquote -Slo -j10 " 9 9 parallel: Error: Command line too long (885735 >= 131049) at input 0: """"""""" par_command_len_shellquote -Slo -j10 " 9 9 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: """""""""
par_command_len_shellquote -Slo -j10 " 9 10 parallel: Error: Command line too long (2657205 >= 131049) at input 0: """"""""" par_command_len_shellquote -Slo -j10 " 9 10 parallel: Error: Command line too long (2657205 >= 131xxx) at input 0: """""""""
par_command_len_shellquote -Slo -j10 " 10 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: """""""""" par_command_len_shellquote -Slo -j10 " 10 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote -Slo -j10 " 10 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: """""""""" par_command_len_shellquote -Slo -j10 " 10 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote -Slo -j10 " 10 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: """""""""" par_command_len_shellquote -Slo -j10 " 10 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote -Slo -j10 ' 1 10 parallel: Error: Command line too long (295245 >= 131049) at input 0: ' par_command_len_shellquote -Slo -j10 ' 1 10 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '
par_command_len_shellquote -Slo -j10 ' 2 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: '' par_command_len_shellquote -Slo -j10 ' 2 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ''
par_command_len_shellquote -Slo -j10 ' 2 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: '' par_command_len_shellquote -Slo -j10 ' 2 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ''
par_command_len_shellquote -Slo -j10 ' 3 9 parallel: Error: Command line too long (295245 >= 131049) at input 0: ''' par_command_len_shellquote -Slo -j10 ' 3 9 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '''
par_command_len_shellquote -Slo -j10 ' 3 10 parallel: Error: Command line too long (885735 >= 131049) at input 0: ''' par_command_len_shellquote -Slo -j10 ' 3 10 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: '''
par_command_len_shellquote -Slo -j10 ' 4 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: '''' par_command_len_shellquote -Slo -j10 ' 4 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''''
par_command_len_shellquote -Slo -j10 ' 4 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: '''' par_command_len_shellquote -Slo -j10 ' 4 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''''
par_command_len_shellquote -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: '''' par_command_len_shellquote -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''''
par_command_len_shellquote -Slo -j10 ' 5 8 parallel: Error: Command line too long (164025 >= 131049) at input 0: ''''' par_command_len_shellquote -Slo -j10 ' 5 8 parallel: Error: Command line too long (164025 >= 131xxx) at input 0: '''''
par_command_len_shellquote -Slo -j10 ' 5 9 parallel: Error: Command line too long (492075 >= 131049) at input 0: ''''' par_command_len_shellquote -Slo -j10 ' 5 9 parallel: Error: Command line too long (492075 >= 131xxx) at input 0: '''''
par_command_len_shellquote -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476225 >= 131049) at input 0: ''''' par_command_len_shellquote -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476225 >= 131xxx) at input 0: '''''
par_command_len_shellquote -Slo -j10 ' 6 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: '''''' par_command_len_shellquote -Slo -j10 ' 6 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ''''''
par_command_len_shellquote -Slo -j10 ' 6 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: '''''' par_command_len_shellquote -Slo -j10 ' 6 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ''''''
par_command_len_shellquote -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: '''''' par_command_len_shellquote -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: ''''''
par_command_len_shellquote -Slo -j10 ' 7 8 parallel: Error: Command line too long (229635 >= 131049) at input 0: ''''''' par_command_len_shellquote -Slo -j10 ' 7 8 parallel: Error: Command line too long (229635 >= 131xxx) at input 0: '''''''
par_command_len_shellquote -Slo -j10 ' 7 9 parallel: Error: Command line too long (688905 >= 131049) at input 0: ''''''' par_command_len_shellquote -Slo -j10 ' 7 9 parallel: Error: Command line too long (688905 >= 131xxx) at input 0: '''''''
par_command_len_shellquote -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066715 >= 131049) at input 0: ''''''' par_command_len_shellquote -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066715 >= 131xxx) at input 0: '''''''
par_command_len_shellquote -Slo -j10 ' 8 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: '''''''' par_command_len_shellquote -Slo -j10 ' 8 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote -Slo -j10 ' 8 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: '''''''' par_command_len_shellquote -Slo -j10 ' 8 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: '''''''' par_command_len_shellquote -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote -Slo -j10 ' 9 8 parallel: Error: Command line too long (295245 >= 131049) at input 0: ''''''''' par_command_len_shellquote -Slo -j10 ' 9 8 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote -Slo -j10 ' 9 9 parallel: Error: Command line too long (885735 >= 131049) at input 0: ''''''''' par_command_len_shellquote -Slo -j10 ' 9 9 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657205 >= 131049) at input 0: ''''''''' par_command_len_shellquote -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657205 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote -Slo -j10 ' 10 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: '''''''''' par_command_len_shellquote -Slo -j10 ' 10 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote -Slo -j10 ' 10 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: '''''''''' par_command_len_shellquote -Slo -j10 ' 10 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: '''''''''' par_command_len_shellquote -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote " 1 1 1 2 6 par_command_len_shellquote " 1 1 1 2 6
par_command_len_shellquote " 1 2 1 2 12 par_command_len_shellquote " 1 2 1 2 12
par_command_len_shellquote " 1 3 1 2 30 par_command_len_shellquote " 1 3 1 2 30
@ -471,74 +469,74 @@ par_command_len_shellquote ' 10 7 0 0 0
par_command_len_shellquote ' 10 8 0 0 0 par_command_len_shellquote ' 10 8 0 0 0
par_command_len_shellquote ' 10 9 0 0 0 par_command_len_shellquote ' 10 9 0 0 0
par_command_len_shellquote ' 10 10 0 0 0 par_command_len_shellquote ' 10 10 0 0 0
par_command_len_shellquote " 1 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: " par_command_len_shellquote " 1 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: "
par_command_len_shellquote " 1 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: " par_command_len_shellquote " 1 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: "
par_command_len_shellquote " 2 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: "" par_command_len_shellquote " 2 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ""
par_command_len_shellquote " 2 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: "" par_command_len_shellquote " 2 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ""
par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: "" par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ""
par_command_len_shellquote " 3 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: """ par_command_len_shellquote " 3 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """
par_command_len_shellquote " 3 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: """ par_command_len_shellquote " 3 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """
par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """ par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """
par_command_len_shellquote " 4 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: """" par_command_len_shellquote " 4 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: """"
par_command_len_shellquote " 4 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: """" par_command_len_shellquote " 4 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: """"
par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: """" par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: """"
par_command_len_shellquote " 5 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: """"" par_command_len_shellquote " 5 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: """""
par_command_len_shellquote " 5 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: """"" par_command_len_shellquote " 5 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: """""
par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: """"" par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: """""
par_command_len_shellquote " 6 7 parallel: Error: Command line too long (131220 >= 131049) at input 0: """""" par_command_len_shellquote " 6 7 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: """"""
par_command_len_shellquote " 6 8 parallel: Error: Command line too long (393660 >= 131049) at input 0: """""" par_command_len_shellquote " 6 8 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: """"""
par_command_len_shellquote " 6 9 parallel: Error: Command line too long (1180980 >= 131049) at input 0: """""" par_command_len_shellquote " 6 9 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: """"""
par_command_len_shellquote " 6 10 parallel: Error: Command line too long (3542940 >= 131049) at input 0: """""" par_command_len_shellquote " 6 10 parallel: Error: Command line too long (3542940 >= 131xxx) at input 0: """"""
par_command_len_shellquote " 7 7 parallel: Error: Command line too long (153090 >= 131049) at input 0: """"""" par_command_len_shellquote " 7 7 parallel: Error: Command line too long (153090 >= 131xxx) at input 0: """""""
par_command_len_shellquote " 7 8 parallel: Error: Command line too long (459270 >= 131049) at input 0: """"""" par_command_len_shellquote " 7 8 parallel: Error: Command line too long (459270 >= 131xxx) at input 0: """""""
par_command_len_shellquote " 7 9 parallel: Error: Command line too long (1377810 >= 131049) at input 0: """"""" par_command_len_shellquote " 7 9 parallel: Error: Command line too long (1377810 >= 131xxx) at input 0: """""""
par_command_len_shellquote " 7 10 parallel: Error: Command line too long (4133430 >= 131049) at input 0: """"""" par_command_len_shellquote " 7 10 parallel: Error: Command line too long (4133430 >= 131xxx) at input 0: """""""
par_command_len_shellquote " 8 7 parallel: Error: Command line too long (174960 >= 131049) at input 0: """""""" par_command_len_shellquote " 8 7 parallel: Error: Command line too long (174960 >= 131xxx) at input 0: """"""""
par_command_len_shellquote " 8 8 parallel: Error: Command line too long (524880 >= 131049) at input 0: """""""" par_command_len_shellquote " 8 8 parallel: Error: Command line too long (524880 >= 131xxx) at input 0: """"""""
par_command_len_shellquote " 8 9 parallel: Error: Command line too long (1574640 >= 131049) at input 0: """""""" par_command_len_shellquote " 8 9 parallel: Error: Command line too long (1574640 >= 131xxx) at input 0: """"""""
par_command_len_shellquote " 8 10 parallel: Error: Command line too long (4723920 >= 131049) at input 0: """""""" par_command_len_shellquote " 8 10 parallel: Error: Command line too long (4723920 >= 131xxx) at input 0: """"""""
par_command_len_shellquote " 9 7 parallel: Error: Command line too long (196830 >= 131049) at input 0: """"""""" par_command_len_shellquote " 9 7 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """""""""
par_command_len_shellquote " 9 8 parallel: Error: Command line too long (590490 >= 131049) at input 0: """"""""" par_command_len_shellquote " 9 8 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """""""""
par_command_len_shellquote " 9 9 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """"""""" par_command_len_shellquote " 9 9 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """""""""
par_command_len_shellquote " 9 10 parallel: Error: Command line too long (5314410 >= 131049) at input 0: """"""""" par_command_len_shellquote " 9 10 parallel: Error: Command line too long (5314410 >= 131xxx) at input 0: """""""""
par_command_len_shellquote " 10 7 parallel: Error: Command line too long (218700 >= 131049) at input 0: """""""""" par_command_len_shellquote " 10 7 parallel: Error: Command line too long (218700 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote " 10 8 parallel: Error: Command line too long (656100 >= 131049) at input 0: """""""""" par_command_len_shellquote " 10 8 parallel: Error: Command line too long (656100 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote " 10 9 parallel: Error: Command line too long (1968300 >= 131049) at input 0: """""""""" par_command_len_shellquote " 10 9 parallel: Error: Command line too long (1968300 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote " 10 10 parallel: Error: Command line too long (5904900 >= 131049) at input 0: """""""""" par_command_len_shellquote " 10 10 parallel: Error: Command line too long (5904900 >= 131xxx) at input 0: """"""""""
par_command_len_shellquote ' 1 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: ' par_command_len_shellquote ' 1 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '
par_command_len_shellquote ' 1 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: ' par_command_len_shellquote ' 1 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '
par_command_len_shellquote ' 2 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: '' par_command_len_shellquote ' 2 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''
par_command_len_shellquote ' 2 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: '' par_command_len_shellquote ' 2 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''
par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: '' par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''
par_command_len_shellquote ' 3 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: ''' par_command_len_shellquote ' 3 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '''
par_command_len_shellquote ' 3 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: ''' par_command_len_shellquote ' 3 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '''
par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: ''' par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: '''
par_command_len_shellquote ' 4 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: '''' par_command_len_shellquote ' 4 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: ''''
par_command_len_shellquote ' 4 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: '''' par_command_len_shellquote ' 4 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: ''''
par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: '''' par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: ''''
par_command_len_shellquote ' 5 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: ''''' par_command_len_shellquote ' 5 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: '''''
par_command_len_shellquote ' 5 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: ''''' par_command_len_shellquote ' 5 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: '''''
par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: ''''' par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: '''''
par_command_len_shellquote ' 6 7 parallel: Error: Command line too long (131220 >= 131049) at input 0: '''''' par_command_len_shellquote ' 6 7 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''''''
par_command_len_shellquote ' 6 8 parallel: Error: Command line too long (393660 >= 131049) at input 0: '''''' par_command_len_shellquote ' 6 8 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''''''
par_command_len_shellquote ' 6 9 parallel: Error: Command line too long (1180980 >= 131049) at input 0: '''''' par_command_len_shellquote ' 6 9 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''''''
par_command_len_shellquote ' 6 10 parallel: Error: Command line too long (3542940 >= 131049) at input 0: '''''' par_command_len_shellquote ' 6 10 parallel: Error: Command line too long (3542940 >= 131xxx) at input 0: ''''''
par_command_len_shellquote ' 7 7 parallel: Error: Command line too long (153090 >= 131049) at input 0: ''''''' par_command_len_shellquote ' 7 7 parallel: Error: Command line too long (153090 >= 131xxx) at input 0: '''''''
par_command_len_shellquote ' 7 8 parallel: Error: Command line too long (459270 >= 131049) at input 0: ''''''' par_command_len_shellquote ' 7 8 parallel: Error: Command line too long (459270 >= 131xxx) at input 0: '''''''
par_command_len_shellquote ' 7 9 parallel: Error: Command line too long (1377810 >= 131049) at input 0: ''''''' par_command_len_shellquote ' 7 9 parallel: Error: Command line too long (1377810 >= 131xxx) at input 0: '''''''
par_command_len_shellquote ' 7 10 parallel: Error: Command line too long (4133430 >= 131049) at input 0: ''''''' par_command_len_shellquote ' 7 10 parallel: Error: Command line too long (4133430 >= 131xxx) at input 0: '''''''
par_command_len_shellquote ' 8 7 parallel: Error: Command line too long (174960 >= 131049) at input 0: '''''''' par_command_len_shellquote ' 8 7 parallel: Error: Command line too long (174960 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote ' 8 8 parallel: Error: Command line too long (524880 >= 131049) at input 0: '''''''' par_command_len_shellquote ' 8 8 parallel: Error: Command line too long (524880 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote ' 8 9 parallel: Error: Command line too long (1574640 >= 131049) at input 0: '''''''' par_command_len_shellquote ' 8 9 parallel: Error: Command line too long (1574640 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote ' 8 10 parallel: Error: Command line too long (4723920 >= 131049) at input 0: '''''''' par_command_len_shellquote ' 8 10 parallel: Error: Command line too long (4723920 >= 131xxx) at input 0: ''''''''
par_command_len_shellquote ' 9 7 parallel: Error: Command line too long (196830 >= 131049) at input 0: ''''''''' par_command_len_shellquote ' 9 7 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote ' 9 8 parallel: Error: Command line too long (590490 >= 131049) at input 0: ''''''''' par_command_len_shellquote ' 9 8 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote ' 9 9 parallel: Error: Command line too long (1771470 >= 131049) at input 0: ''''''''' par_command_len_shellquote ' 9 9 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote ' 9 10 parallel: Error: Command line too long (5314410 >= 131049) at input 0: ''''''''' par_command_len_shellquote ' 9 10 parallel: Error: Command line too long (5314410 >= 131xxx) at input 0: '''''''''
par_command_len_shellquote ' 10 7 parallel: Error: Command line too long (218700 >= 131049) at input 0: '''''''''' par_command_len_shellquote ' 10 7 parallel: Error: Command line too long (218700 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote ' 10 8 parallel: Error: Command line too long (656100 >= 131049) at input 0: '''''''''' par_command_len_shellquote ' 10 8 parallel: Error: Command line too long (656100 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote ' 10 9 parallel: Error: Command line too long (1968300 >= 131049) at input 0: '''''''''' par_command_len_shellquote ' 10 9 parallel: Error: Command line too long (1968300 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote ' 10 10 parallel: Error: Command line too long (5904900 >= 131049) at input 0: '''''''''' par_command_len_shellquote ' 10 10 parallel: Error: Command line too long (5904900 >= 131xxx) at input 0: ''''''''''
par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup
par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520
par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520

View file

@ -391,15 +391,6 @@ echo "### BUG: The length for -X is not close to max (131072)"
### BUG: The length for -X is not close to max (131072) ### BUG: The length for -X is not close to max (131072)
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
1 12817 131016 1 12817 131016
echo "### BUG: empty lines with --show-limit"
### BUG: empty lines with --show-limit
echo | $NICEPAR --show-limits
Maximal size of command: 131049
Maximal used size of command: 131049
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please
press CTRL-D or CTRL-C
echo '### Test -N' echo '### Test -N'
### Test -N ### Test -N
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3} seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}

View file

@ -1073,7 +1073,7 @@ tcsh: Unsupported
To install in all shells run: To install in all shells run:
parset --install parset --install
For details: see man parset For details: see man parset
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \ parallel --sqlandworker csv:///%2Ftmp/log.csv \
seq ::: 10 ::: 12 13 14 seq ::: 10 ::: 12 13 14
cat /tmp/log.csv cat /tmp/log.csv
99 99
@ -1087,7 +1087,7 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout,
3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,"10 3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,"10
99 99
", ",
parallel --results outdir --sqlandworker csv:////%2Ftmp%2Flog2.csv \ parallel --results outdir --sqlandworker csv:///%2Ftmp/log2.csv \
seq ::: 10 ::: 12 13 14 seq ::: 10 ::: 12 13 14
cat /tmp/log2.csv cat /tmp/log2.csv
99 99
@ -1098,9 +1098,9 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout,
vendor://[[user][:password]@][host][:port]/[database[/table] vendor://[[user][:password]@][host][:port]/[database[/table]
/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory /bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
sqlite3:///%2Ftmp%2Fmydatabase/mytable sqlite3:///%2Ftmp%2Fmydatabase/mytable
csv:////%2Ftmp%2Flog.csv csv:///%2Ftmp/log.csv
/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory /bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
/bin/bash: line 1: csv:////%2Ftmp%2Flog.csv: No such file or directory /bin/bash: line 1: csv:///%2Ftmp/log.csv: No such file or directory
DBURL=sqlite3:///%2Ftmp%2Fmydatabase DBURL=sqlite3:///%2Ftmp%2Fmydatabase
DBURLTABLE=$DBURL/mytable DBURLTABLE=$DBURL/mytable
parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz