82977


例えば、以下に示すような文字列がある場合、これを `--` ごとに分割し、順番に配列に格納したいです。

一行のみならばawkを使えばいいだけですが、複数行で同じことをやろうとしたらIFSを変更するなど試行錯誤してみたもののうまく行きません。  
方法をご存知の方がいましたらご教授よろしくおねがいします。

**対象の文字列:**

[code]

    $ cat hoge.txt
    あいうえお
    ああああああ
    かきくけこ
    あかさたな
    --
    abcde
    qwerty
    asdfghj
    --
    poiuy
    lkjh
    mnbvc
    --
    aaaaaa
    うううう
    
[/code]


CC BY-SA 4.0
2021-10-09T13:29:07.123
82976
2021-10-09T16:29:41.170
2021-10-09T16:29:41.170
3060
48566
question
linux shellscript awk
シェルスクリプトで複数行の文字列を区切り文字ごとに分割して配列に格納する方法


「--」ごとに(正確に言うと「--(改行)」ごとに)レコードとして区切るのなら、RSをそのように設定すれば良いと思います。  
「順番に配列に格納したい」の部分がやりたいことと合っているかわかりませんが、以下実行例です。

[code]

    $ cat hoge.txt
    あいうえお
    ああああああ
    かきくけこ
    あかさたな
    --
    abcde
    qwerty
    asdfghj
    --
    poiuy
    lkjh
    mnbvc
    --
    aaaaaa
    うううう
    $ awk 'BEGIN{RS="--\n"};{a[i++]=$0};END{for(i in a){printf "a["i"]=" a[i] }}' hoge.txt 
    a[0]=あいうえお
    ああああああ
    かきくけこ
    あかさたな
    a[1]=abcde
    qwerty
    asdfghj
    a[2]=poiuy
    lkjh
    mnbvc
    a[3]=aaaaaa
    うううう
    
[/code]


CC BY-SA 4.0
2021-10-09T14:25:04.177
82977
2021-10-09T14:25:04.177
30745
82976
answer