aşağıdaki biçimde bir dize vardır:" n" karakterlerini içeren çok satırlı bir dizeyi bash dizesinde bir dizeye bölmek nasıl?
$ echo "${ARRAY[0]}"
I'm\nNed\nNederlander
$ echo "${ARRAY[1]}"
I'm\nLucky\nDay
$ echo "${ARRAY[2]}"
I'm\nDusty\nBottoms
Ancak, ben:
I'm\nNed\nNederlander
I'm\nLucky\nDay
I'm\nDusty\nBottoms
Ben öyle ki çizgiyle dizeleri hattının bir diziye bu hareket etmek istiyorum dizenin kendisinde "\ n" karakterleriyle ilgili sorunlara yol açıyor. Dizgede iki ayrı karakter, ters eğik çizgi ve 'n' olarak gösterilirler, ancak dizi bölünmesini yapmaya çalıştığımda, yeni satırlar olarak yorumlanırlar. Böylece IFS
ile ayrılan tipik dize çalışmıyor. Örneğin
:
$ read -a ARRAY <<< "$STRING"
$ echo "${#ARRAY[@]}" # print number of elements
2
$ echo "${ARRAY[0]}"
I'mnNednNederla
$ echo "${ARRAY[1]}"
der
, herkes SE en düzeltmek için nasıl biliyor Yukarıdaki kodun korkunç biçimlendirmesi? –
"Korkunç biçimlendirme", kesme tırnaklarının tek tırnaklar olarak yorumlandığından (bunun dengelenmeyi beklediği) kaynaklanmaktadır. "Kod" etiketleri yerine "blok alıntı" etiketlerini kullanın. – twalberg