On Wed, Oct 5, 2016 at 4:21 PM, Geoffrey Cleaves <[email protected]> wrote:
> Hi all. Is there a replacement string similar to {//} which keeps only the
> extension? I know it's possible to define a custom replacement pattern but
> I'm running into difficulties since I have so many nested shells and my
> matching parenthesis aren't being recognised.
>From man parallel:
--plus Activate additional replacement strings: {+/}
{+.} {+..} {+...} {..} {...} {/..} {/...}
{##}. The idea being that '{+foo}' matches
the opposite of '{foo}' and {} = {+/}/{/} =
{.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} =
{+/}/{/..}.{+..} = {...}.{+...} =
{+/}/{/...}.{+...}
{##} is the number of jobs to be run. It is
incompatible with -X/-m/--xargs.
So:
parallel --plus echo {+.} ::: name.extension
should print extension.
If you have a problem with quoting, consider putting a --rpl statement
in your ~/.parallel/config. E.g:
--rpl '{0#} $f = "%0".int(1+log(total_jobs())/log(10))."d";
$_=sprintf($f,$job->seq())'
to have {0#} be a 0-padded job-number.
/Ole