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
# Setup .gnupg/gpg.conf if not already done
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
keyserver2=pool.sks-keyservers.net
if gpg --keyserver $keyserver1 --recv-key 0xFFFFFFF1 ||
@ -74,6 +79,7 @@ run() {
echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked."
return 1
fi
fi
else
# GnuPG not installed
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
* Bug fixes and man page updates.

20
README
View file

@ -57,11 +57,11 @@ document.
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-20200322.tar.bz2.sig
gpg parallel-20200322.tar.bz2.sig
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf -
cd parallel-20200322
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
gpg parallel-20200422.tar.bz2.sig
bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
cd parallel-20200422
./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
~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2.sig
gpg parallel-20200322.tar.bz2.sig
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf -
cd parallel-20200322
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
gpg parallel-20200422.tar.bz2.sig
bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
cd parallel-20200422
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# 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>.
#
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20200322'
PACKAGE_STRING='parallel 20200322'
PACKAGE_VERSION='20200422'
PACKAGE_STRING='parallel 20200422'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
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.
# This message is too long to be a string in the A/UX 3.1 sh.
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]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20200322:";;
short | recursive ) echo "Configuration of parallel 20200422:";;
esac
cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20200322
parallel configure 20200422
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
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
$ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20200322'
VERSION='20200422'
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
# values after options handling.
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
CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
parallel config.status 20200322
parallel config.status 20200422
configured by $0, generated by GNU Autoconf 2.69,
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])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([

View file

@ -3,16 +3,13 @@ Quote of the month:
Who needs spark when GNU Parallel exists
-- MatthijsB @MatthijsBrs@twitter
I wish more command line software had example pages as robust as GNU Parallel
-- Lucidbeaming @lucidbeaming
GNU parallel all the way!
-- David Manouchehri @DaveManouchehri@twitter
I found GNU Parallel and it's awesome.
-- 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
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.
-- 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
I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL
@ -60,6 +57,12 @@ Quote of the month:
=== 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.
-- 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/sem.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/parset.html
http://www.gnu.org/software/parallel/parsort.html
http://www.gnu.org/software/parallel/niceload.html
cp src/*.pdf src/*.html ../parallel-web/parallel
@ -210,34 +211,46 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org
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.>>
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:
GNU parallel is straight up incredible.
-- Ben Johnson @biobenkj@twtter
I wish more command line software had example pages as robust as GNU Parallel
-- Lucidbeaming @lucidbeaming
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.
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

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 \
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
bin_SCRIPTS = 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
install-exec-hook:
rm $(DESTDIR)$(bindir)/sem || true
@ -11,18 +11,18 @@ install-exec-hook:
if DOCUMENTATION
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
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 \
niceload.html parallel_tutorial.html parallel_book.html \
parallel_design.html parallel_alternatives.html parcat.html \
parset.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 \
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 \
parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
parallel_cheat_bw.pdf
endif
@ -94,6 +94,12 @@ parset.1: parset.pod
&& mv $(srcdir)/parset.1n $(srcdir)/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
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
&& 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"
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
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|| 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 \
|| 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
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|| 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" \
|| 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
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|| 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 \
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 \
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
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
EXTRA_DIST = parallel sem 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 parcat.pod parset.pod \
sem.pod parallel.pod env_parallel.pod niceload.pod \
EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
env_parallel env_parallel.ash env_parallel.bash \
env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
parallel_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_builddir = @top_builddir@
top_srcdir = @top_srcdir@
bin_SCRIPTS = 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
bin_SCRIPTS = 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
@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_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@ niceload.html parallel_tutorial.html parallel_book.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@ niceload.texi parallel_tutorial.texi parallel_book.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_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
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
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 \
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
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
EXTRA_DIST = parallel sem 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 parcat.pod parset.pod \
sem.pod parallel.pod env_parallel.pod niceload.pod \
EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
env_parallel env_parallel.ash env_parallel.bash \
env_parallel.csh env_parallel.dash env_parallel.fish \
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
parallel_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
@ -686,6 +686,12 @@ parset.1: parset.pod
&& mv $(srcdir)/parset.1n $(srcdir)/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
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
&& 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"
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
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|| 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 \
|| 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
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|| 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" \
|| 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
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"

View file

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

View file

@ -2150,7 +2150,7 @@ sub check_invalid_option_combinations() {
sub init_globals() {
# Defaults:
$Global::version = 20200323;
$Global::version = 20200422;
$Global::progname = 'parallel';
$::name = "GNU Parallel";
$Global::infinity = 2**31;
@ -5309,13 +5309,15 @@ sub qqx(@) {
# ssh with ssh-agent needs PATH SSH_AUTH_SOCK SSH_AGENT_PID
# ssh with Kerberos needs KRB5CCNAME
# 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};
local %ENV;
%ENV = %env;
if($Global::debug) {
return qx{ @_ && true };
} else {
if($^O eq "cygwin") {
# CygWin does not respect 2>/dev/null
# so we do that by hand
open my $original_stderr, ">&", "STDERR" or
@ -5327,6 +5329,9 @@ sub qqx(@) {
open STDERR, ">&", $original_stderr or
::die_bug("Can't dup STDERR: $!");
return wantarray ? @ret : join "",@ret;
} else {
return qx{ ( @_ ) 2>/dev/null };
}
}
}
@ -5578,7 +5583,6 @@ sub which(@) {
# Returns:
# @full_path = full paths to @programs. Nothing if not found
my @which;
::debug("which", "@_ in $ENV{'PATH'}\n");
for my $prg (@_) {
push(@which, grep { not -d $_ and -x $_ }
map { $_."/".$prg } split(":",$ENV{'PATH'}));
@ -5587,6 +5591,7 @@ sub which(@) {
push(@which, grep { not -d $_ and -x $_ } $prg);
}
}
::debug("which", "$which[0] in $ENV{'PATH'}\n");
return wantarray ? @which : $which[0];
}
@ -7158,6 +7163,7 @@ sub ncpus($) {
}
} else {
my $ncpu;
::debug("init","echo|$sshcmd $serverlogin -- parallel --number-of-sockets");
if($opt::use_sockets_instead_of_threads
or
$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
often be used as a substitute for B<xargs> or B<cat | bash>.
=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
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:
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
If you need a one page printable cheat sheet you can find it on:
https://www.gnu.org/software/parallel/parallel_cheat.pdf
If you want to dive deeper: spend a couple of hours walking through
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>
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
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
parallel>) if you have special needs not already covered.
=head3 Reference
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:
B<man parallel_design>. This is also a good intro if you intend to
change GNU B<parallel>.
=head1 OPTIONS
=over 4
@ -2333,7 +2350,8 @@ E.g.
sql:oracle://scott:tiger@ora.example.com/xe/parjob
postgresql://scott:tiger@pg.example.com/pgdb/parjob
pg:///parjob
sqlite3:///pardb/parjob
sqlite3:///pardb/parjob.sqlite
csv:///%2Ftmp%2Fmydir/jobtable
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:
DBURL=csv:///%2Ftmp%2Fmy.csv
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
dburl=csv:///%2Ftmp%2Fmydir
dbtableurl=$dburl/mytable.csv
parallel --sqlandworker $dbtableurl seq ::: {1..10}
It is rather slow and takes up a lot of CPU time because GNU
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:
DBURL=sqlite3:///%2Ftmp%2Fmy.sqlite
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql $DBURL '.headers on' '.mode csv' 'SELECT * FROM mytable;'
dburl=sqlite3:///%2Ftmp%2Fmy.sqlite
dbtableurl=$dburl/mytable
parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql $dburl '.headers on' '.mode csv' 'SELECT * FROM mytable;'
This takes around a second per job.
If you have access to a real database system, such as PostgreSQL, it
is even faster:
DBURL=pg://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql $DBURL \
dburl=pg://user:pass@host/mydb
dbtableurl=$dburl/mytable
parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql $dburl \
"COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;"
Or MySQL:
DBURL=mysql://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql -p -B $DBURL "SELECT * FROM mytable;" > mytable.tsv
perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/; s/\\\\/\\/g;
s/\\t/\t/g; s/\\n/\n/g;' mytable.tsv
dburl=mysql://user:pass@host/mydb
dbtableurl=$dburl/mytable
parallel --sqlandworker $dbtableurl seq ::: {1..10}
sql -p -B $dburl "SELECT * FROM mytable;" > mytable.tsv
perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/;
%s=("\\" => "\\", "t" => "\t", "n" => "\n");
s/\\([\\tn])/$s{$1}/g;' mytable.tsv
=head1 EXAMPLE: Output to CSV-file for R

View file

@ -54,6 +54,7 @@ B<Outputs>
O7. Buffering on disk
O8. Cleanup of file if killed
O9. Test if disk runs full during run
O10. Output of a line bigger than 4 GB
B<Execution>
E1. Running jobs in parallel
@ -91,7 +92,7 @@ BUGS).
parallel:
I1 I2 I3 I4 I5 I6 I7
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
R1 R2 R3 R4 R5 R6 R7 R8 R9
S1 S2
@ -2348,12 +2349,157 @@ You can then do:
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
https://pypi.org/project/papply/
https://github.com/jreisinger/runp
https://github.com/JeiKeiLim/simple_distribute_job
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
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

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:
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
parallel --sqlandworker csv:///%2Ftmp/log.csv \
seq ::: 10 ::: 12 13 14
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>:
parallel --results outdir --sqlandworker csv:////%2Ftmp%2Flog2.csv \
parallel --results outdir --sqlandworker csv:///%2Ftmp/log2.csv \
seq ::: 10 ::: 12 13 14
cat /tmp/log2.csv
@ -2303,7 +2303,7 @@ Example:
mysql://scott:tiger@my.example.com/mydatabase/mytable
postgresql://scott:tiger@pg.example.com/mydatabase/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
encode the B</> as B<%2F>.

View file

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

View file

@ -5,13 +5,17 @@ unset TIMEOUT
env_parallel --session
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'
parallel -k echo ::: Basic usage works
parallel -k -S localhost echo ::: Remote usage works
}
}
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
env_parallel -S $host doit ::: a
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
env_parallel -S $host doit ::: a
fi

View file

@ -86,9 +86,12 @@ par_verbose_t() {
par_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 -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() {
@ -746,7 +749,7 @@ par_unquote_replacement_string() {
par_delimiter_space() {
echo '### Does space as delimiter work?'
parallel -d " " echo ::: "1 done"
parallel -k -d " " echo ::: "1 done"
}
par_recend_not_regexp() {

View file

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

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
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_)

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)"
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'
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)
# 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 {} \
::: {debian-ppc,ubuntu,suse,redhat}.polarhome.com)
::: {ubuntu,suse,redhat}.polarhome.com)
parallel -j0 --delay 0.1 --retries $RETRIES \
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
par_show_limits ### Test --show-limits
par_show_limits Maximal size of command: 131049
par_show_limits Maximal used size of command: 131049
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
@ -783,13 +783,20 @@ par_show_limits press CTRL-D or CTRL-C
par_show_limits bar
par_show_limits car
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
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_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 This should take a few ms, but took more than 2 hours
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 /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[0]: Entering directory '/tmp/parallel-00000000/src'
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 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 /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 /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 /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'
@ -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 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 /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[0]: Entering directory '/tmp/parallel-00000000/src'
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 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 /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 --section=1 ./parallel.pod > ./parallel.1n \
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 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 /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 /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'

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_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 1 6662 131026
par_max_length_len_128k 1 14215 131044
par_max_length_len_128k 1 9266 131036
par_max_length_len_128k 1 7013 131033
par_max_length_len_128k 1 14807 131043
par_max_length_len_128k 131xxx
par_max_length_len_128k 131xxx
par_max_length_len_128k 131xxx
par_max_length_len_128k 131xxx
par_max_length_len_128k 131xxx
par_max_length_len_128k 131xxx
par_memfree ### test memfree - it should be killed by timeout
par_memfree Free mem: 1k
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 parallel: Error: --retries cannot be combined with --roundrobin.
par_lsh ### --ssh lsh
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
par_lsh OK
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
par_lsh OK
par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin
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 9 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 " 2 9 parallel: Error: Command line too long (196830 >= 131049) 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 " 3 9 parallel: Error: Command line too long (295245 >= 131049) 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 " 4 8 parallel: Error: Command line too long (131220 >= 131049) 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 10 parallel: Error: Command line too long (1180980 >= 131049) 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 9 parallel: Error: Command line too long (492075 >= 131049) 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 " 6 8 parallel: Error: Command line too long (196830 >= 131049) 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 10 parallel: Error: Command line too long (1771470 >= 131049) 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 9 parallel: Error: Command line too long (688905 >= 131049) 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 " 8 8 parallel: Error: Command line too long (262440 >= 131049) 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 10 parallel: Error: Command line too long (2361960 >= 131049) 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 9 parallel: Error: Command line too long (885735 >= 131049) 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 " 10 8 parallel: Error: Command line too long (328050 >= 131049) 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 10 parallel: Error: Command line too long (2952450 >= 131049) 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 ' 2 9 parallel: Error: Command line too long (196830 >= 131049) 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 ' 3 9 parallel: Error: Command line too long (295245 >= 131049) 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 ' 4 8 parallel: Error: Command line too long (131220 >= 131049) 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 10 parallel: Error: Command line too long (1180980 >= 131049) 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 9 parallel: Error: Command line too long (492075 >= 131049) 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 ' 6 8 parallel: Error: Command line too long (196830 >= 131049) 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 10 parallel: Error: Command line too long (1771470 >= 131049) 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 9 parallel: Error: Command line too long (688905 >= 131049) 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 ' 8 8 parallel: Error: Command line too long (262440 >= 131049) 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 10 parallel: Error: Command line too long (2361960 >= 131049) 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 9 parallel: Error: Command line too long (885735 >= 131049) 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 ' 10 8 parallel: Error: Command line too long (328050 >= 131049) 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 10 parallel: Error: Command line too long (2952450 >= 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 >= 131xxx) 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 >= 131xxx) 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 (131xxx >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 (131xxx >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) at input 0: ''''''''''
par_command_len_shellquote " 1 1 1 2 6
par_command_len_shellquote " 1 2 1 2 12
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 9 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 10 parallel: Error: Command line too long (590490 >= 131049) 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 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: ""
par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180980 >= 131049) 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 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: """
par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771470 >= 131049) 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 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: """"
par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361960 >= 131049) 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 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: """""
par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952450 >= 131049) 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 8 parallel: Error: Command line too long (393660 >= 131049) 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 10 parallel: Error: Command line too long (3542940 >= 131049) 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 8 parallel: Error: Command line too long (459270 >= 131049) 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 10 parallel: Error: Command line too long (4133430 >= 131049) 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 8 parallel: Error: Command line too long (524880 >= 131049) 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 10 parallel: Error: Command line too long (4723920 >= 131049) 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 8 parallel: Error: Command line too long (590490 >= 131049) 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 10 parallel: Error: Command line too long (5314410 >= 131049) 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 8 parallel: Error: Command line too long (656100 >= 131049) 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 10 parallel: Error: Command line too long (5904900 >= 131049) 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 10 parallel: Error: Command line too long (590490 >= 131049) 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 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: ''
par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180980 >= 131049) 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 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: '''
par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771470 >= 131049) 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 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: ''''
par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361960 >= 131049) 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 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: '''''
par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952450 >= 131049) 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 8 parallel: Error: Command line too long (393660 >= 131049) 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 10 parallel: Error: Command line too long (3542940 >= 131049) 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 8 parallel: Error: Command line too long (459270 >= 131049) 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 10 parallel: Error: Command line too long (4133430 >= 131049) 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 8 parallel: Error: Command line too long (524880 >= 131049) 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 10 parallel: Error: Command line too long (4723920 >= 131049) 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 8 parallel: Error: Command line too long (590490 >= 131049) 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 10 parallel: Error: Command line too long (5314410 >= 131049) 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 8 parallel: Error: Command line too long (656100 >= 131049) 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 10 parallel: Error: Command line too long (5904900 >= 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) 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 >= 131xxx) at input 0: ''''''''''
par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup
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)
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
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'
### Test -N
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}

View file

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