我有一個串的格式如下:如何將包含字符「 n」的多行字符串拆分爲bash中的字符串數組?
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
BTW,沒有任何人知道如何解決SE的上面的代碼可怕的格式? – 2012-07-31 17:51:34
「可怕的格式」是由於撇號被解釋爲單引號(它預計會被平衡)。使用「塊引用」標籤而不是「代碼」標籤。 – twalberg 2012-07-31 17:59:53