From 14089a1ff0e9d51b95adf3aa537d058c47dfd053 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Fri, 22 Nov 2024 23:17:53 +0100 Subject: [PATCH] Released as 20241122 ('Ahoo Daryaei') --- NEWS | 19 ++++++++-- README | 24 ++++++------- configure | 20 +++++------ configure.ac | 2 +- doc/haikus | 11 ++++-- doc/release_new_version | 33 +++++++++++++---- packager/obs/home-tange/parallel/.osc/_files | 15 ++++---- .../home-tange/parallel/.osc/parallel.spec | 2 +- src/env_parallel.ash | 2 +- src/env_parallel.bash | 2 +- src/env_parallel.dash | 2 +- src/env_parallel.ksh | 2 +- src/env_parallel.mksh | 2 +- src/env_parallel.pod | 4 +-- src/env_parallel.sh | 2 +- src/env_parallel.zsh | 2 +- src/niceload | 2 +- src/parallel | 22 ++++++------ src/parallel.pod | 32 ++++++++--------- src/parallel_alternatives.pod | 2 ++ src/parallel_examples.pod | 36 +++++++++++++------ src/parsort | 2 +- src/sql | 2 +- 23 files changed, 149 insertions(+), 93 deletions(-) diff --git a/NEWS b/NEWS index 70a1974c..241ae883 100644 --- a/NEWS +++ b/NEWS @@ -2,13 +2,28 @@ New in this release: -* <> +* --pipe --block works similar to --pipepart --block if --block size is negative. + +* DBURLs can be written with / instead of %2F for sqlite and CSV. * Bug fixes and man page updates. News about GNU Parallel: -<<>> +* Embarrassingly GNU parallel + https://dengin.xyz/blog/2024/10/24/embarrassingly-gnu-parallel/ + +* GNU Parallel for Your Terminal Tasks + https://erolrecep.github.io/posts/gnuparallel_for_your_terminal_tasks/ + +* How to leverage GNU parallel to utilize multiple cores while running AUGUSTUS + https://lifescienceshub.wixsite.com/lifesciencehub/post/how-to-leverage-gnu-parallel-to-utilize-multiple-cores-while-running-augustus + +* GNU Parallel: The Good Parts + https://diekmeier.de/posts/2024-11-17-gnu-parallel/ + +* Put your CPU to work with GNU Parallel + https://www.redhat.com/en/blog/gnu-parallel 20241022 diff --git a/README b/README index e837bac8..539adf4b 100644 --- a/README +++ b/README @@ -57,11 +57,11 @@ document. Full installation of GNU Parallel is as simple as: - wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2.sig - gpg parallel-20241022.tar.bz2.sig - bzip2 -dc parallel-20241022.tar.bz2 | tar xvf - - cd parallel-20241022 + wget https://ftpmirror.gnu.org/parallel/parallel-20241122.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20241122.tar.bz2.sig + gpg parallel-20241122.tar.bz2.sig + bzip2 -dc parallel-20241122.tar.bz2 | tar xvf - + cd parallel-20241122 ./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-20241022.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2.sig - gpg parallel-20241022.tar.bz2.sig - bzip2 -dc parallel-20241022.tar.bz2 | tar xvf - - cd parallel-20241022 + wget https://ftpmirror.gnu.org/parallel/parallel-20241122.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20241122.tar.bz2.sig + gpg parallel-20241122.tar.bz2.sig + bzip2 -dc parallel-20241122.tar.bz2 | tar xvf - + cd parallel-20241122 ./configure --prefix=$HOME && make && make install Or if your system lacks 'make' you can simply copy src/parallel @@ -122,8 +122,8 @@ will love you for it. When using programs that use GNU Parallel to process data for publication please cite: - Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah'). - Zenodo. https://doi.org/10.5281/zenodo.13957646 + Tange, O. (2024, November 22). GNU Parallel 20241122 ('Ahoo Daryaei'). + Zenodo. https://doi.org/10.5281/zenodo.14207479 Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. diff --git a/configure b/configure index e8b16e27..08ba98fa 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for parallel 20241022. +# Generated by GNU Autoconf 2.71 for parallel 20241122. # # Report bugs to . # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20241022' -PACKAGE_STRING='parallel 20241022' +PACKAGE_VERSION='20241122' +PACKAGE_STRING='parallel 20241122' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1246,7 +1246,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 20241022 to adapt to many kinds of systems. +\`configure' configures parallel 20241122 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1313,7 +1313,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20241022:";; + short | recursive ) echo "Configuration of parallel 20241122:";; esac cat <<\_ACEOF @@ -1390,7 +1390,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20241022 +parallel configure 20241122 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1427,7 +1427,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 20241022, which was +It was created by parallel $as_me 20241122, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2379,7 +2379,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20241022' + VERSION='20241122' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3026,7 +3026,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 20241022, which was +This file was extended by parallel $as_me 20241122, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3090,7 +3090,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -parallel config.status 20241022 +parallel config.status 20241122 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 4b8ba6a1..c426b7bb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel],[20241022],[bug-parallel@gnu.org]) +AC_INIT([parallel],[20241122],[bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/haikus b/doc/haikus index 0b60cfd6..41845832 100644 --- a/doc/haikus +++ b/doc/haikus @@ -4,6 +4,11 @@ Quote of the month: + GNU parallel is awesome. Use it more often in your scripts! + -- Wade @WadeGrimshire@twitter + + i rly love gnu parallel over xargs, it's basically the same but has lots of useful and well documented options. sry if u know already + -- d@nny "disc@" mc² @hipsterelectron@circumstances.run ainda não inventaram palavras capazes de expressar minha gratidão aos desenvolvedores do GNU Parallel -- nueidris ‪@nueidris.kawaii.social‬ @@ -11,9 +16,6 @@ Quote of the month: Und die Tage jetzt hab ich GNU parallel für mich entdeckt, auch ne nette Geschichte, gerade wenn's irgendwelche remote APIs sind. -- Vince ‪@dd1des.bsky.social‬ - GNU parallel is so satisfying - -- ‪James Coman‬ ‪@jcoman.bsky.social‬ - gnu parallelすごい!!! -- たらたら@nosennyuu@twitter @@ -237,6 +239,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html === Used === + GNU parallel is so satisfying + -- ‪James Coman‬ ‪@jcoman.bsky.social‬ + GNU Parallel is one of the most helpful tools I've been using recently, and it's just something like: parallel -j4 'gzip {}' ::: folder/*.csv -- Milton Pividori @miltondp@twitter diff --git a/doc/release_new_version b/doc/release_new_version index f9354b1a..94853ebf 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -34,6 +34,12 @@ make short == Update version == +https://savannah.gnu.org/news/submit.php?group=parallel + +Draft: +perl -ne '/It\sis\savailable/..0 and print' doc/release_new_version | clipboard + + https://zenodo.org/deposit/new Do you already have a DOI for this upload? No @@ -266,24 +272,39 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20241122 ('#AhooDaryaei /Regn i valencia/us pres/Unite the kingdom/Tommy Robinson/Alex/Southport2/Georgien') released +Subject: GNU Parallel 20241122 ('Ahoo Daryaei') released -GNU Parallel 20241122 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 +GNU Parallel 20241122 ('Ahoo Daryaei') has been released. It is available for download at: lbry://@GnuParallel:4 Quote of the month: - <<>> + GNU parallel is so satisfying + -- James Coman @jcoman.bsky.social New in this release: -* No new features. This is a candidate for a stable release. +* --pipe --block works similar to --pipepart --block if --block size is negative. + +* DBURLs can be written with / instead of %2F for sqlite and CSV. * Bug fixes and man page updates. News about GNU Parallel: -https://www.redhat.com/en/blog/gnu-parallel -https://erolrecep.github.io/posts/gnuparallel_for_your_terminal_tasks/ +* Embarrassingly GNU parallel + https://dengin.xyz/blog/2024/10/24/embarrassingly-gnu-parallel/ + +* GNU Parallel for Your Terminal Tasks + https://erolrecep.github.io/posts/gnuparallel_for_your_terminal_tasks/ + +* How to leverage GNU parallel to utilize multiple cores while running AUGUSTUS + https://lifescienceshub.wixsite.com/lifesciencehub/post/how-to-leverage-gnu-parallel-to-utilize-multiple-cores-while-running-augustus + +* GNU Parallel: The Good Parts + https://diekmeier.de/posts/2024-11-17-gnu-parallel/ + +* Put your CPU to work with GNU Parallel + https://www.redhat.com/en/blog/gnu-parallel GNU Parallel - For people who live life in the parallel lane. diff --git a/packager/obs/home-tange/parallel/.osc/_files b/packager/obs/home-tange/parallel/.osc/_files index 0e7a6497..14d09c57 100644 --- a/packager/obs/home-tange/parallel/.osc/_files +++ b/packager/obs/home-tange/parallel/.osc/_files @@ -1,10 +1,9 @@ - + - - - - - - - + + + + + + diff --git a/packager/obs/home-tange/parallel/.osc/parallel.spec b/packager/obs/home-tange/parallel/.osc/parallel.spec index 16feff45..7a74258d 100644 --- a/packager/obs/home-tange/parallel/.osc/parallel.spec +++ b/packager/obs/home-tange/parallel/.osc/parallel.spec @@ -1,7 +1,7 @@ Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20241022 +Version: 20241122 Release: 2.1 License: GPL-3.0-or-later Group: Productivity/File utilities diff --git a/src/env_parallel.ash b/src/env_parallel.ash index a47611b3..4e829b9c 100755 --- a/src/env_parallel.ash +++ b/src/env_parallel.ash @@ -601,7 +601,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.bash b/src/env_parallel.bash index d7e8e55b..6c7301b2 100755 --- a/src/env_parallel.bash +++ b/src/env_parallel.bash @@ -605,7 +605,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.dash b/src/env_parallel.dash index c40d8c69..51a8004f 100755 --- a/src/env_parallel.dash +++ b/src/env_parallel.dash @@ -601,7 +601,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.ksh b/src/env_parallel.ksh index 6dbd3f60..5091a394 100755 --- a/src/env_parallel.ksh +++ b/src/env_parallel.ksh @@ -601,7 +601,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.mksh b/src/env_parallel.mksh index 9300f62f..faea2702 100644 --- a/src/env_parallel.mksh +++ b/src/env_parallel.mksh @@ -570,7 +570,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.pod b/src/env_parallel.pod index cef01faf..ad5675a4 100644 --- a/src/env_parallel.pod +++ b/src/env_parallel.pod @@ -275,7 +275,7 @@ Due to a bug in Bash, aliases containing newlines must be followed by a newline in the command. Some systems are not affected by this bug, but will print a warning anyway. -=head2 csh (beta testing) +=head2 csh B for B breaks B<$PARALLEL>, so do not use B<$PARALLEL>. @@ -679,7 +679,7 @@ B<--session> is supported. =back -=head2 tcsh (beta testing) +=head2 tcsh B for B breaks B<$PARALLEL>, so do not use B<$PARALLEL>. diff --git a/src/env_parallel.sh b/src/env_parallel.sh index c9532170..d1161af5 100755 --- a/src/env_parallel.sh +++ b/src/env_parallel.sh @@ -601,7 +601,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/env_parallel.zsh b/src/env_parallel.zsh index e38cef14..2d277ef4 100755 --- a/src/env_parallel.zsh +++ b/src/env_parallel.zsh @@ -601,7 +601,7 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20241022 (GNU parallel `parallel --minversion 1`)" + echo "parset 20241122 (GNU parallel `parallel --minversion 1`)" echo "Copyright (C) 2007-2024 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " diff --git a/src/niceload b/src/niceload index 7bc6815b..7f142355 100755 --- a/src/niceload +++ b/src/niceload @@ -26,7 +26,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20241022; +$Global::version = 20241122; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index 4566a4fc..4fbd963e 100755 --- a/src/parallel +++ b/src/parallel @@ -2945,7 +2945,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20241120; + $Global::version = 20241122; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -6003,8 +6003,8 @@ sub usage() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - " Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah').", - " Zenodo. https://doi.org/10.5281/zenodo.13957646", + " Tange, O. (2024, November 22). GNU Parallel 20241122 ('Ahoo Daryaei').", + " Zenodo. https://doi.org/10.5281/zenodo.14207479", "", # Before changing these lines, please read # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice @@ -6036,8 +6036,8 @@ sub citation_notice() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - " Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah').", - " Zenodo. https://doi.org/10.5281/zenodo.13957646", + " Tange, O. (2024, November 22). GNU Parallel 20241122 ('Ahoo Daryaei').", + " Zenodo. https://doi.org/10.5281/zenodo.14207479", "", # Before changing these line, please read # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and @@ -6163,20 +6163,20 @@ sub citation() { "If you use programs that use GNU Parallel to process data for an article in a", "scientific publication, please cite:", "", - "\@software{tange_2024_13957646,", + "\@software{tange_2024_14207479,", " author = {Tange, Ole},", - " title = {GNU Parallel 20241022 ('Sinwar Nasrallah')},", - " month = Oct,", + " title = {GNU Parallel 20241122 ('Ahoo Daryaei')},", + " month = Nov,", " year = 2024,", " note = {{GNU Parallel is a general parallelizer to run", " multiple serial command line programs in parallel", " without changing them.}},", " publisher = {Zenodo},", - " doi = {10.5281/zenodo.13957646},", - " url = {https://doi.org/10.5281/zenodo.13957646}", + " doi = {10.5281/zenodo.14207479},", + " url = {https://doi.org/10.5281/zenodo.14207479}", "}", "", - "(Feel free to use \\nocite{tange_2024_13957646})", + "(Feel free to use \\nocite{tange_2024_14207479})", "", # Before changing these lines, please read # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and diff --git a/src/parallel.pod b/src/parallel.pod index c0022a1d..612e6e37 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -134,7 +134,7 @@ B: Use B. B: Use B. -=item B<{}> (beta testing) +=item B<{}> Input line. @@ -155,7 +155,7 @@ See also: B<--plus> B<{.}> B<{/}> B<{//}> B<{/.}> B<{#}> B<{%}> B<{>IB<}> B<{=>IB<=}> -=item B<{.}> (beta testing) +=item B<{.}> Input line without extension. @@ -173,7 +173,7 @@ The replacement string B<{.}> can be changed with B<--extensionreplace> See also: B<{}> B<--extensionreplace> -=item B<{/}> (beta testing) +=item B<{/}> Basename of input line. @@ -183,7 +183,7 @@ directory part removed. See also: B<{}> B<--basenamereplace> -=item B<{//}> (beta testing) +=item B<{//}> Dirname of input line. @@ -193,7 +193,7 @@ line. See B(1). See also: B<{}> B<--dirnamereplace> -=item B<{/.}> (beta testing) +=item B<{/.}> Basename of input line without extension. @@ -204,7 +204,7 @@ B<{/}> and B<{.}>. See also: B<{}> B<--basenameextensionreplace> -=item B<{#}> (beta testing) +=item B<{#}> Sequence number of the job to run. @@ -214,7 +214,7 @@ job being run. It contains the same number as $PARALLEL_SEQ. See also: B<{}> B<--seqreplace> -=item B<{%}> (beta testing) +=item B<{%}> Job slot number. @@ -249,7 +249,7 @@ Notice how {%} and $PARALLEL_JOBSLOT differ in the retry run of C and D. See also: B<{}> B<--jobs> B<--slotreplace> -=item B<{>IB<}> (beta testing) +=item B<{>IB<}> Argument from input source I or the I'th argument. @@ -263,7 +263,7 @@ See also: B<{}> B<{>I.B<}> B<{>I/B<}> B<{>I//B<}> B<{>I/.B<}> B<--colsep> -=item B<{>I.B<}> (beta testing) +=item B<{>I.B<}> Argument from input source I or the I'th argument without extension. @@ -278,7 +278,7 @@ extension removed. See also: B<{>IB<}> B<{.}> -=item B<{>I/B<}> (beta testing) +=item B<{>I/B<}> Basename of argument from input source I or the I'th argument. @@ -292,7 +292,7 @@ directory (if any) removed. See also: B<{>IB<}> B<{/}> -=item B<{>I//B<}> (beta testing) +=item B<{>I//B<}> Dirname of argument from input source I or the I'th argument. @@ -305,7 +305,7 @@ the I'th argument (when used with B<-N>). See B(1). See also: B<{>IB<}> B<{//}> -=item B<{>I/.B<}> (beta testing) +=item B<{>I/.B<}> Basename of argument from input source I or the I'th argument without extension. @@ -321,7 +321,7 @@ directory (if any) and extension removed. See also: B<{>IB<}> B<{/.}> -=item B<{=>IB<=}> (beta testing) +=item B<{=>IB<=}> Replace with calculated I. @@ -438,7 +438,7 @@ See also: B<--rpl> B<--parens> B<{}> B<{=>I IB<=}> B<--filter> -=item B<{=>I IB<=}> (beta testing) +=item B<{=>I IB<=}> Positional equivalent to B<{=>IB<=}>. @@ -447,7 +447,7 @@ To understand positional replacement strings see B<{>IB<}>. See also: B<{=>IB<=}> B<{>IB<}> -=item B<{>I:IB<}> (beta testing) +=item B<{>I:IB<}> Format replacement string. @@ -1823,7 +1823,7 @@ If in doubt use B<-X> as that will most likely do what is needed. See also: B<-X> B<--xargs> -=item B<--match> I (beta testing) +=item B<--match> I Match input source with regexp to set replacement fields. diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index e75c42fc..f07213c8 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -4918,6 +4918,8 @@ https://github.com/simonjwright/parallelize =head2 Todo +https://github.com/rustunit/parallelrun?tab=readme-ov-file + https://github.com/justanhduc/task-spooler https://manpages.ubuntu.com/manpages/xenial/man1/tsp.1.html diff --git a/src/parallel_examples.pod b/src/parallel_examples.pod index 99d6e8fc..14d3b173 100644 --- a/src/parallel_examples.pod +++ b/src/parallel_examples.pod @@ -25,17 +25,6 @@ FUBAR in all files in this dir and subdirs: Note B<-q> is needed because of the space in 'FOO BAR'. -=head2 EXAMPLE: Simple network scanner - -B can generate IP-addresses from CIDR notation. With GNU -B you can build a simple network scanner to see which -addresses respond to B: - - prips 130.229.16.0/20 | \ - parallel --timeout 2 -j0 \ - 'ping -c 1 {} >/dev/null && echo {}' 2>/dev/null - - =head2 EXAMPLE: Reading arguments from command line GNU B can take the arguments from command line instead of @@ -49,6 +38,20 @@ To convert *.wav to *.mp3 using LAME running one process per CPU run: parallel lame {} -o {.}.mp3 ::: *.wav +=head2 EXAMPLE: Running full commands in parallel + +If there is no command given to GNU B, then the arguments +are treated as a command line. + +To run B and B in parallel run: + + parallel ::: "gzip foo" "bzip2 bar" + +or: + + (echo "gzip foo"; echo "bzip2 bar") | parallel + + =head2 EXAMPLE: Inserting multiple arguments When moving a lot of files like this: B you will @@ -377,6 +380,17 @@ the log: mv log log.1 +=head2 EXAMPLE: Simple network scanner + +B can generate IP-addresses from CIDR notation. With GNU +B you can build a simple network scanner to see which +addresses respond to B: + + prips 130.229.16.0/20 | \ + parallel --timeout 2 -j0 \ + 'ping -c 1 {} >/dev/null && echo {}' 2>/dev/null + + =head2 EXAMPLE: Removing file extension when processing files When processing files removing the file extension using B<{.}> is diff --git a/src/parsort b/src/parsort index 6da27fe2..a5b24ac2 100755 --- a/src/parsort +++ b/src/parsort @@ -137,7 +137,7 @@ GetOptions( "help" => \$opt::dummy, ) || exit(255); $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; -$Global::version = 20241022; +$Global::version = 20241122; if($opt::version) { version(); exit 0; } # Remove -D and --parallel=N my @s = (grep { ! /^-D$|^--parallel=\S+$/ } diff --git a/src/sql b/src/sql index 4970c8c3..2d7ea808 100755 --- a/src/sql +++ b/src/sql @@ -693,7 +693,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20241022; + $Global::version = 20241122; $Global::progname = 'sql'; # This must be done first as this may exec myself