Staram się poradzić sobię z danymi wysyłanymi przez pewien program. Program generuje wielowierszowe dane (każda linijka to 1 'rekord'). Zastanawiam się jak można ładnie wczytać to do tablicy. Problemem jest to że poszczególne linijki mogą zawierać białe znaki - w innym wypadku coś takiego spisuje się całkiem nieźle:
Kod: Zaznacz cały
TEST=($(program | xargs))
Narazie wykombinowałem coś takiego aby przekazać dane zawierające spacje (zakładam, że '|' nie znajdzie się w danych wynikowych programu):
Kod: Zaznacz cały
TEST=(\"$(program | sed 's/^/|/' | xargs | cut -c2- | sed 's/ |/" "/g')\")
Kod: Zaznacz cały
$ echo ${TEST[0]}
"element1"
$ echo ${TEST[1]}
"element 2"
itd...
Kod: Zaznacz cały
TEST=("element1" "element 2" ... )
Kod: Zaznacz cały
$ echo ${TEST[0]}
element1
$ echo ${TEST[1]}
element 2
itd...
PS. Tylko bash z sedem, awkiem, cutem, itp. php, perl... odpadają