次の形式 の文字列があります。
I'm\nNed\nNederlander
I'm\nLucky\nDay
I'm\nDusty\nBottoms
これを次のように1行ずつ文字列の配列に移動したいと思います。
$ echo "${ARRAY[0]}"
I'm\nNed\nNederlander
$ echo "${ARRAY[1]}"
I'm\nLucky\nDay
$ echo "${ARRAY[2]}"
I'm\nDusty\nBottoms
ただし、文字列自体の「\n」文字に問題が発生しています。これらは文字列内でバックスラッシュと「n」の2つの別個の文字として表されますが、配列分割を実行しようとすると、改行として解釈されます。したがって、通常の文字列分割はIFS
機能しません。
例えば:
$ read -a ARRAY <<< "$STRING"
$ echo "${#ARRAY[@]}" # print number of elements
2
$ echo "${ARRAY[0]}"
I'mnNednNederla
$ echo "${ARRAY[1]}"
der