Daugiau
Padalyti eilutę į masyvą naudojant "Bash
"Bash" scenarijuje norėčiau padalyti eilutę į dalis ir jas išsaugoti masyve.
Eilutė:
Paris, France, Europe
Norėčiau, kad jie būtų išdėstyti masyve taip:
array[0] = Paris
array[1] = France
array[2] = Europe
Norėčiau naudoti paprastą kodą, komandos greitis nesvarbus. Kaip tai padaryti?
571
3
Čia pateikiamas būdas nenustatant IFS:
Idėja - naudoti eilutės pakeitimą:
pakeisti visus $substring atitikmenis baltu tarpu ir tada pakeisti pakeistą eilutę inicializuoti masyvą:
Pastaba: šiame atsakyme naudojamas split+glob operatorius. Taigi, norint išvengti kai kurių simbolių (pvz.,
*
) išsiplėtimo, šiame scenarijuje verta pristabdyti globbing'ą.Kartais man pasitaikydavo, kad priimtame atsakyme aprašytas metodas neveikdavo, ypač jei skyrybos ženklas yra vežimėlio grįžimas.
Tokiais atvejais spręsdavau tokiu būdu: