Bash bir diziye bir dize bölmek
Bir Bash betiği içinde parçalara bölünmüş bir çizgi ve bir diziye koymak istiyorum.
Satır:
Paris, France, Europe
Bir dizi onları böyle olsun istiyorum:
array[0] = Paris
array[1] = France
array[2] = Europe
Basit bir kod kullanmak istiyorum, komut hızını önemli değil. Bunu nasıl yapabilirim?
CEVAP
IFS=', ' read -a array <<< "$string"
Tek bir öğesine erişmek için:
echo "${array[0]}"
Öğeler üzerinde yineleme için:
for element in "${array[@]}"
do
echo "$element"
done
Endeks hem de değeri almak için:
for index in "${!array[@]}"
do
echo "$index ${array[index]}"
done
Son örnek Bash diziler seyrek olduğu için yararlıdır. Diğer bir deyişle, bir öğe silmek veya bir öğe eklemek ve sonra endeksleri bitişik değil.
unset "array[1]"
array[42]=Earth
Bir dizideki öğe sayısını almak için:
echo "${#array[@]}"
Yukarıda da belirtildiği gibi, diziler uzunluğu son elemanı almak için kullanmamalısın çok seyrek olabilir. 4.2 ve daha sonra Bash:
echo "${array[-1]}"
Bash (bir yere 2.05 b): herhangi bir sürümü
echo "$array[@]: -1:1}
Büyük negatif uzaklıklar daha dizinin sonuna seçin. Eski formunda eksi işaretinden önce boşluk unutmayın. Gereklidir.
Swift: bir diziye bir Dize Bölmek...
Nasıl PHP bir diziye virgülle ayrılmış...
Nasıl Python ile karakter diziye bir d...
Karakter dizeleri diziye bir dize bölm...
Bash, nasıl bir diziye boşlukla ayrılm...