[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Solution looking for (more than one) problem
From: |
Ole Tange |
Subject: |
Re: Solution looking for (more than one) problem |
Date: |
Sat, 11 Mar 2017 13:42:43 +0100 |
On Sat, Mar 11, 2017 at 12:14 AM, Ole Tange <ole@tange.dk> wrote:
> So far the --rpl strings are fixed. There is no way to "pass an
> argument". I have changed that:
>
> parallel --rpl '{%(.*?)} s/$$1//' echo {%.tar.gz} ::: my.tar.gz
>
> To ask for an argument you put '(regexp)' in the replacement string,
> and you access them using $$1 $$2 ...
>
> This can also take multiple arguments:
:
> But those are pretty stupid examples. Can you find a use where
> multiple arguments would make sense?
More inspiration from Bash:
unset a
echo ${a:-myval}
parallel --rpl '{:-(.+)} $_ ||= $$1' echo {:-myval} ::: "$a"
a=abcAaAdef
echo ${a:2}
parallel --rpl '{:(\d+)} substr($_,0,$$1) = ""' echo {:2} ::: "$a"
echo ${a:2:3}
parallel --rpl '{:(\d+?):(\d+?)} $_ = substr($_,$$1,$$2);' echo {:2:3} ::: "$a"
echo ${#a}
parallel --rpl '{#} $_ = length $_;' echo {#} ::: "$a"
echo ${a#bc}
parallel --rpl '{#(.+?)} s/^$$1//;' echo {#bc} ::: "$a"
echo ${a#abc}
parallel --rpl '{#(.+?)} s/^$$1//;' echo {#abc} ::: "$a"
echo ${a%de}
parallel --rpl '{%(.+?)} s/$$1$//;' echo {%de} ::: "$a"
echo ${a%def}
parallel --rpl '{%(.+?)} s/$$1$//;' echo {%def} ::: "$a"
echo ${a/def/ghi}
parallel --rpl '{/(.+?)/(.+?)} s/$$1/$$2/;' echo {/def/ghi} ::: "$a"
echo ${a^a}
parallel --rpl '{^(.+?)} s/($$1)/uc($1)/e;' echo {^a} ::: "$a"
echo ${a^^a}
parallel --rpl '{^^(.+?)} s/($$1)/uc($1)/eg;' echo {^^a} ::: "$a"
a=AbcAaAdef
echo ${a,A}
parallel --rpl '{,(.+?)} s/($$1)/lc($1)/e;' echo '{,A}' ::: "$a"
echo ${a,,A}
parallel --rpl '{,,(.+?)} s/($$1)/lc($1)/eg;' echo '{,,A}' ::: "$a"
/Ole