如何在bash中将包含"\n"字符的多行字符串分割成字符串数组?
如何在bash中将包含"\n"字符的多行字符串分割成字符串数组?
这个问题已经有了答案:
我有一个字符串的格式如下:
I'm\nNed\nNederlander I'm\nLucky\nDay I'm\nDusty\nBottoms
我希望将其按行移动到字符串数组中,使它变成:
$ echo "${ARRAY[0]}" I'm\nNed\nNederlander $ echo "${ARRAY[1]}" I'm\nLucky\nDay $ echo "${ARRAY[2]}" I'm\nDusty\nBottoms
但是,我在字符串本身的\"\\n\"字符上遇到了问题。它们在字符串中表示为两个单独的字符,反斜杠和\'n\',但当我尝试进行数组拆分时,它们被解释为换行符。因此,使用 IFS
进行典型的字符串拆分无法工作。
例如:
$ read -a ARRAY <<< "$STRING" $ echo "${#ARRAY[@]}" # print number of elements 2 $ echo "${ARRAY[0]}" I'mnNednNederla $ echo "${ARRAY[1]}" der
admin 更改状态以发布 2023年5月19日