Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.user > #224799
| From | Greg Wooledge <wooledg@eeg.ccf.org> |
|---|---|
| Newsgroups | linux.debian.user |
| Subject | Re: delimiters with more than one character? ... |
| Date | 2020-07-14 15:10 +0200 |
| Message-ID | <AssR3-5tM-7@gated-at.bofh.it> (permalink) |
| References | <AssHn-5be-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, Jul 14, 2020 at 02:52:08PM +0200, Albretch Mueller wrote:
> 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?
Not using shell builtin tools, no. (Well, you could always iterate
over the string character by character
You can convince awk to do it, and produce a modified data stream
that bash can parse.
unicorn:~$ printf '%s\n' "$_S" | awk -F '\\\\[|]' '{for(i=1; i<=NF; i++) {printf("%s\0",$i)}}' | hd
00000000 20 33 34 20 2b 20 34 35 20 00 20 61 62 63 20 00 | 34 + 45 . abc .|
00000010 20 31 20 32 20 33 20 00 20 63 00 31 32 33 61 62 | 1 2 3 . c.123ab|
00000020 63 20 00 |c .|
00000023
So, there's our modified stream, with NUL delimiters. Bash 4.4 and
above can read that directly into an array:
unicorn:~$ mapfile -t -d '' array < <(printf '%s\n' "$_S" | awk -F '\\\\[|]' '{for(i=1; i<=NF; i++) {printf("%s\0",$i)}}')
unicorn:~$ declare -p array
declare -a array=([0]=" 34 + 45 " [1]=" abc " [2]=" 1 2 3 " [3]=" c" [4]="123abc ")
With bash versions older than 4.4, mapfile does not have the -d ''
option, so you'd need a loop to populate an array from the NUL-delimited
stream.
There may be other ways, but this is the first one that came to mind.
Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
delimiters with more than one character? ... Albretch Mueller <lbrtchx@gmail.com> - 2020-07-14 15:00 +0200
Re: delimiters with more than one character? ... Alex Mestiashvili <amestia@rsh2.donotuse.de> - 2020-07-14 15:00 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-14 15:10 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-14 15:10 +0200
Re: delimiters with more than one character? ... Alex Mestiashvili <amestia@rsh2.donotuse.de> - 2020-07-14 15:20 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-14 15:10 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-14 15:20 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-14 17:30 +0200
Re: delimiters with more than one character? ... Albretch Mueller <lbrtchx@gmail.com> - 2020-07-15 12:30 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-15 14:00 +0200
Re: delimiters with more than one character? ... David Wright <deblis@lionunicorn.co.uk> - 2020-07-15 14:30 +0200
Re: delimiters with more than one character? ... Bob Weber <bobrweber@gmail.com> - 2020-07-15 14:40 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-15 14:50 +0200
Re: delimiters with more than one character? ... Bob Weber <bobrweber@gmail.com> - 2020-07-15 16:20 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-15 16:30 +0200
Re: delimiters with more than one character? ... The Wanderer <wanderer@fastmail.fm> - 2020-07-15 16:30 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-15 17:50 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-15 15:10 +0200
Re: delimiters with more than one character? ... Bob Weber <bobrweber@gmail.com> - 2020-07-14 17:30 +0200
Re: delimiters with more than one character? ... Alessandro Baggi <alessandro.baggi@gmail.com> - 2020-07-15 17:30 +0200
Re: delimiters with more than one character? ... Eric S Fraga <e.fraga@ucl.ac.uk> - 2020-07-16 12:10 +0200
Re: delimiters with more than one character? ... "Thomas Schmitt" <scdbackup@gmx.net> - 2020-07-16 13:40 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-16 14:00 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-16 16:00 +0200
Re: delimiters with more than one character? ... Zenaan Harkness <zenaan@freedbms.net> - 2020-07-17 04:50 +0200
Re: delimiters with more than one character? ... Nicolas George <george@nsup.org> - 2020-07-17 10:50 +0200
Re: delimiters with more than one character? ... rhkramer@gmail.com - 2020-07-17 13:20 +0200
tmpfs is not a ramdisk (was: delimiters with more than one character? ...) Nicolas George <george@nsup.org> - 2020-07-17 13:30 +0200
Re: tmpfs is not a ramdisk (was: delimiters with more than one character? ...) David Wright <deblis@lionunicorn.co.uk> - 2020-07-17 18:20 +0200
Re: tmpfs is not a ramdisk (was: delimiters with more than one character? ...) rhkramer@gmail.com - 2020-07-17 20:30 +0200
Re: tmpfs is not a ramdisk (was: delimiters with more than one character? ...) Zenaan Harkness <zenaan@freedbms.net> - 2020-07-18 07:20 +0200
Re: tmpfs is not a ramdisk (was: delimiters with more than one character? ...) <tomas@tuxteam.de> - 2020-07-18 10:40 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-17 13:40 +0200
Re: delimiters with more than one character? ... "Thomas Schmitt" <scdbackup@gmx.net> - 2020-07-16 16:00 +0200
Re: delimiters with more than one character? ... Zenaan Harkness <zenaan@freedbms.net> - 2020-07-17 04:50 +0200
Re: delimiters with more than one character? ... Eric S Fraga <e.fraga@ucl.ac.uk> - 2020-07-16 15:00 +0200
Re: delimiters with more than one character? ... John Crawley <john@bunsenlabs.org> - 2020-08-05 08:30 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-08-05 15:10 +0200
Re: delimiters with more than one character? ... John Crawley <john@bunsenlabs.org> - 2020-08-06 05:00 +0200
Re: delimiters with more than one character? ... Greg Wooledge <wooledg@eeg.ccf.org> - 2020-08-06 13:40 +0200
Re: delimiters with more than one character? ... John Crawley <john@bunsenlabs.org> - 2020-08-07 03:10 +0200
csiph-web