tengo una cadenaen el siguiente formato:Cómo dividir una cadena de varias líneas que contiene los caracteres " n" en una matriz de cadenas en bash?
I'm\nNed\nNederlander
I'm\nLucky\nDay
I'm\nDusty\nBottoms
me gustaría pasar esto a una serie de cadenas de línea a línea tal que:
$ echo "${ARRAY[0]}"
I'm\nNed\nNederlander
$ echo "${ARRAY[1]}"
I'm\nLucky\nDay
$ echo "${ARRAY[2]}"
I'm\nDusty\nBottoms
Sin embargo, estoy encontrando problemas con los caracteres "\ n" dentro de la cadena misma. Están representados en la cadena como dos caracteres separados, la barra invertida y la 'n', pero cuando intento hacer la división de la matriz, se interpretan como líneas nuevas. Por lo tanto, la división típica de cadenas con IFS
no funciona.
Por ejemplo:
$ read -a ARRAY <<< "$STRING"
$ echo "${#ARRAY[@]}" # print number of elements
2
$ echo "${ARRAY[0]}"
I'mnNednNederla
$ echo "${ARRAY[1]}"
der
por cierto, ¿alguien sabe cómo solucionar la sE terrible formateo del código de arriba? –
El "formato terrible" se debe a que los apóstrofos se interpretan como comillas simples (que espera que estén equilibradas). Use las etiquetas "block quote" en lugar de las etiquetas "code". – twalberg