ho una stringa dinel seguente formato:Come dividere una stringa multilinea contenente i caratteri " n" in una matrice di stringhe in bash?
I'm\nNed\nNederlander
I'm\nLucky\nDay
I'm\nDusty\nBottoms
Vorrei spostare questo a un array di stringhe linea per linea in modo tale che:
$ echo "${ARRAY[0]}"
I'm\nNed\nNederlander
$ echo "${ARRAY[1]}"
I'm\nLucky\nDay
$ echo "${ARRAY[2]}"
I'm\nDusty\nBottoms
Tuttavia, sono incorrere in problemi con i caratteri "\ n" all'interno della stringa stessa. Sono rappresentati nella stringa come due caratteri separati, la backslash e la 'n', ma quando provo a fare lo split dell'array vengono interpretati come newline. Quindi la tipica divisione delle stringhe con IFS
non funziona.
Ad esempio:
$ read -a ARRAY <<< "$STRING"
$ echo "${#ARRAY[@]}" # print number of elements
2
$ echo "${ARRAY[0]}"
I'mnNednNederla
$ echo "${ARRAY[1]}"
der
proposito, qualcuno sa come risolvere il problema di sE formattazione terribile del codice sopra? –
La "terribile formattazione" è dovuta agli apostrofi interpretati come virgolette singole (che si aspetta siano bilanciate). Usa i tag "block quote" invece dei tag "code". – twalberg