---------- Forwarded message ---------
Date: Thu, Jul 16, 2020 at 11:42 AM
Subject: Re: delimiters with more than one character?
To: <debian-u...@lists.debian.org>

I've slowly been learning the Raku programming language (AKA Perl6), and
while I'm far from being an expert, this is the first solution I came up
with (raku one-or-two-liners, at the bash command prompt):

user@mbook:~$ raku -e ' my Str $s=" 34 + 45 \| abc \| 1 2 3 \| c\|123abc ";
$s.put';
 34 + 45 | abc | 1 2 3 | c|123abc
user@mbook:~$ raku -e ' my Str $s=" 34 + 45 \| abc \| 1 2 3 \| c\|123abc ";
$s.split("|").raku.put';
(" 34 + 45 ", " abc ", " 1 2 3 ", " c", "123abc ").Seq
user@mbook:~$ raku -e ' my Str $s=" 34 + 45 \| abc \| 1 2 3 \| c\|123abc ";
.put for $s.split("|");'
 34 + 45
 abc
 1 2 3
 c
123abc
user@mbook:~$ raku -e ' my Str $s=" 34 + 45 \| abc \| 1 2 3 \| c\|123abc ";
.raku.put for $s.split("|");'
" 34 + 45 "
" abc "
" 1 2 3 "
" c"
"123abc "
user@mbook:~$

Looking at the Str typed-variable $s I see that backslash escapes are
removed automatically (the second command only has to split on the pipe
character). So maybe this isn't a general solution, but it works for the
example given.

https://raku.org/

HTH, Bill.





On Thu, Jul 16, 2020 at 5:35 AM Tom Browder <tom.brow...@gmail.com> wrote:

> An opportunity for Raku golfers to show off Raku on the Debian users list.
>
> Best regards,
>
> -Tom
>
> ---------- Forwarded message ---------
> From: Albretch Mueller <lbrt...@gmail.com>
> Date: Tue, Jul 14, 2020 at 07:52
> Subject: delimiters with more than one character? ...
> To: Debian Users ML <debian-u...@lists.debian.org>
>
>
>  I have a string delimited by two characters: "\|"
>
>  _S=" 34 + 45 \| abc \| 1 2 3 \| c\|123abc "
>
>  which then I need to turn into a array looking like:
>
>   _S_AR=(
> " 34 + 45 "
> " abc "
> " 1 2 3 "
> " c"
> "123abc "
> )
>
>   I can't make awk or tr work in the way I need and all examples I
> have found use only one character.
>
>   Is it possible to do such things in bash?
>
>   lbrtchx
>
>

Reply via email to