mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-24 23:17:55 +00:00
parallel: EXAMPLE: Start editor with filenames from stdin (standard input).
parallel: EXAMPLE: GNU Parallel as queue system/batch manager.
This commit is contained in:
parent
a8d4668fb6
commit
692bb88453
|
@ -75,6 +75,38 @@ find music-files -type f | parallel -j+0 -S :,server1,server2 \
|
||||||
# sem
|
# sem
|
||||||
# --retry
|
# --retry
|
||||||
|
|
||||||
|
(echo a1.txt; echo b1.txt; echo c1.txt; echo a2.txt; echo b2.txt; echo c2.txt;)| \
|
||||||
|
parallel -X -N 3 my-program --file={}
|
||||||
|
|
||||||
|
(echo a1.txt; echo b1.txt; echo c1.txt; echo d1.txt; echo e1.txt; echo f1.txt;)| \
|
||||||
|
parallel -X my-program --file={}
|
||||||
|
|
||||||
|
# First job controls the tty
|
||||||
|
# -u needed because output should not be saved for later
|
||||||
|
|
||||||
|
find . -type f | parallel -uXj1 vim
|
||||||
|
find . -type f | parallel -uXj1 emacs
|
||||||
|
|
||||||
|
# If you have 1000 files only one contains 'foobar'
|
||||||
|
# stop when this one is found
|
||||||
|
|
||||||
|
find . -type f | parallel grep -l foobar | head -1
|
||||||
|
|
||||||
|
|
||||||
|
# To test a list of hosts are up and pingable save this
|
||||||
|
# to a file called machinesup
|
||||||
|
|
||||||
|
#!/usr/bin/parallel --shebang --no-run-if-empty ping -c 3 {} >/dev/null 2>&1
|
||||||
|
|
||||||
|
google.com
|
||||||
|
yahoo.com
|
||||||
|
nowhere.gone
|
||||||
|
|
||||||
|
# Then:
|
||||||
|
# chmod 755 machinesup
|
||||||
|
# ./machinesup || echo Some machines are down
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=head1 YouTube video
|
=head1 YouTube video
|
||||||
|
|
||||||
|
|
|
@ -116,38 +116,26 @@ cc:Peter Simons <simons@cryp.to>, Sandro Cazzaniga <kharec@mandriva.org>,
|
||||||
Tim Cuthbertson <tim3d.junk@gmail.com>, Ludovic Courtès <ludo@gnu.org>,
|
Tim Cuthbertson <tim3d.junk@gmail.com>, Ludovic Courtès <ludo@gnu.org>,
|
||||||
Markus Ammer <mkmm@gmx-topmail.de>, Pavel Nuzhdin <pnzhdin@gmail.com>,
|
Markus Ammer <mkmm@gmx-topmail.de>, Pavel Nuzhdin <pnzhdin@gmail.com>,
|
||||||
Phil Sung <psung@alum.mit.edu>, Michael Shigorin <mike@altlinux.org>,
|
Phil Sung <psung@alum.mit.edu>, Michael Shigorin <mike@altlinux.org>,
|
||||||
Andrew McFague <amcfague@wgen.net>, Steven M. Christensen <sunfreeware@gmail.com>
|
Andrew McFague <amcfague@wgen.net>, Steven M. Christensen <sunfreeware@gmail.com>,
|
||||||
|
Chris Howey <howeyc@gmail.com>
|
||||||
|
|
||||||
Subject: GNU Parallel 20100922 released
|
Subject: GNU Parallel 2010XXXX released
|
||||||
|
|
||||||
GNU Parallel 20100922 has been released. It is available for
|
GNU Parallel 2010XXXX has been released. It is available for
|
||||||
download at: http://ftp.gnu.org/gnu/parallel/
|
download at: http://ftp.gnu.org/gnu/parallel/
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
|
* FreeBSD port. Thanks to Chris Howey <howeyc at gmail dot com>
|
||||||
|
|
||||||
|
* First review on print:
|
||||||
|
http://www.linux-magazine.com/Issues/2010 Nov 2010
|
||||||
|
|
||||||
|
Old in this release:
|
||||||
|
|
||||||
* See GNU Parallel live at FSCONS 2010-11-07:
|
* See GNU Parallel live at FSCONS 2010-11-07:
|
||||||
http://www.fscons.org/fs/gnu-parallel
|
http://www.fscons.org/fs/gnu-parallel
|
||||||
|
|
||||||
* Untested Debian and xUbuntu packages available through OpenSUSE
|
|
||||||
build service:
|
|
||||||
https://build.opensuse.org/package/show?package=parallel&project=home%3Atange
|
|
||||||
|
|
||||||
* Using --retries a job will be retried on another computer if it
|
|
||||||
fails. This is useful if some jobs fail for no apparent reason (such
|
|
||||||
as network failure).
|
|
||||||
|
|
||||||
* BSD xargs -o (open /dev/tty) is now default for the job running in
|
|
||||||
foreground. Useful for interactive commands like:
|
|
||||||
ls | parallel -Xuj1 vi
|
|
||||||
|
|
||||||
* GNU sql now supports SQLite.
|
|
||||||
|
|
||||||
* Renamed .dburl.aliases to .sql/aliases and /etc/sql/aliases.
|
|
||||||
|
|
||||||
* GNU sql now support --list-tables
|
|
||||||
|
|
||||||
* Alias for DBURL can contain '?query' part with %-quoting.
|
|
||||||
|
|
||||||
|
|
||||||
= About GNU Parallel =
|
= About GNU Parallel =
|
||||||
|
|
||||||
|
|
47
src/parallel
47
src/parallel
|
@ -462,7 +462,8 @@ with all the arguments.
|
||||||
|
|
||||||
Support for B<-m> with B<--sshlogin> is limited and may fail.
|
Support for B<-m> with B<--sshlogin> is limited and may fail.
|
||||||
|
|
||||||
See also B<-X> for context replace.
|
See also B<-X> for context replace. If in doubt use B<-X> as that will
|
||||||
|
most likely do what is needed.
|
||||||
|
|
||||||
|
|
||||||
=item B<--progress>
|
=item B<--progress>
|
||||||
|
@ -843,13 +844,19 @@ Implies B<--semaphore>.
|
||||||
|
|
||||||
=item B<-X>
|
=item B<-X>
|
||||||
|
|
||||||
xargs with context replace. This works like B<-m> except if B<{}> is part
|
Multiple arguments with context replace. Insert as many arguments as
|
||||||
of a word (like I<pic{}.jpg>) then the whole word will be
|
the command line length permits. If B<{}> is not used the arguments
|
||||||
repeated. Normally B<-X> will do the right thing, whereas B<-m> can
|
will be appended to the line. If B<{}> is used as part of a word
|
||||||
give surprising results if B<{}> is used as part of a word.
|
(like I<pic{}.jpg>) then the whole word will be repeated. If B<{}> is
|
||||||
|
used multiple times each B<{}> will be replaced with the arguments.
|
||||||
|
|
||||||
|
Normally B<-X> will do the right thing, whereas B<-m> can give
|
||||||
|
unexpected results if B<{}> is used as part of a word.
|
||||||
|
|
||||||
Support for B<-X> with B<--sshlogin> is limited and may fail.
|
Support for B<-X> with B<--sshlogin> is limited and may fail.
|
||||||
|
|
||||||
|
See also B<-m>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--exit>
|
=item B<--exit>
|
||||||
|
|
||||||
|
@ -1370,6 +1377,36 @@ same time:
|
||||||
seq 1 3 | parallel sem --id mymutex sed -i -e 'i{}' myfile
|
seq 1 3 | parallel sem --id mymutex sed -i -e 'i{}' myfile
|
||||||
|
|
||||||
|
|
||||||
|
=head1 EXAMPLE: Start editor with filenames from stdin (standard input)
|
||||||
|
|
||||||
|
You can use GNU Parallel to start interactive programs like emacs or vi:
|
||||||
|
|
||||||
|
B<cat filelist | parallel -uXj1 emacs>
|
||||||
|
|
||||||
|
B<cat filelist | parallel -uXj1 vi>
|
||||||
|
|
||||||
|
If there are more files than will fit on a single command line, the
|
||||||
|
editor will be started again with the remaining files.
|
||||||
|
|
||||||
|
|
||||||
|
=head1 EXAMPLE: GNU Parallel as queue system/batch manager
|
||||||
|
|
||||||
|
GNU Parallel can work as a simple job queue system or batch manager.
|
||||||
|
The idea is to put the jobs into a file and have GNU Parallel read
|
||||||
|
from that continuously. As GNU Parallel will stop at end of file we
|
||||||
|
use tail to continue reading:
|
||||||
|
|
||||||
|
B<echo >>B<jobqueue>; B<tail -f jobqueue | parallel>
|
||||||
|
|
||||||
|
To submit your jobs to the queue:
|
||||||
|
|
||||||
|
B<echo my_command my_arg >>>B< jobqueue>
|
||||||
|
|
||||||
|
You can of course use B<-S> to distribute the jobs to remote
|
||||||
|
computers:
|
||||||
|
|
||||||
|
B<echo >>B<jobqueue>; B<tail -f jobqueue | parallel -S ..>
|
||||||
|
|
||||||
=head1 QUOTING
|
=head1 QUOTING
|
||||||
|
|
||||||
For more advanced use quoting may be an issue. The following will
|
For more advanced use quoting may be an issue. The following will
|
||||||
|
|
Loading…
Reference in a new issue