@ksvdon

Как в bash массив занести построчно вывод команды?

У меня есть некая строка. Я хочу разбить её по разделителю " , ". Всё получается, но каждый элемент который я разбил хочу сделать элементом массива. Если записывать это всё в переменную/сразу в массив - получается сплошная строка (а ведь изначально получались отдельные строки) и элементами массива станут слова разделенные пробелами, что не годится. Тупой способ - записать все в файл и считать построчно, работает. Но хотелось бы без файлов обойтись. Можно как-то?

a='trololo oo, lalala aa, lalala''
awk '{split($0,stuff,","); for(i in stuff) { print(stuff[" i "]= stuff[i])} }'
ps надо чтобы trololo oo был первый элемента, а не trololo - 1й, а oo - 2й...
  • Вопрос задан
  • 2047 просмотров
Решения вопроса 1
@ksvdon Автор вопроса
a='{"message":"done it","result":"1204","status":200}'

array_num=0
while read LINE; do
curl_answ_array[${array_num}]=${LINE}
let array_num=${array_num}+1
done < <(echo ${a}|grep status -m 1|tr -d '\"{}'|awk '{split($0,stuff,","); for(i in stuff) { print(stuff[" i "]= stuff[i])} }')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@xibir
a='trololo oo, lalala aa, lalala'
mapfile -t -d, strings < <(echo "$a")
echo "${strings[0]}"
echo "${strings[1]}"

параметр -d у mapfile есть в bash начиная с версии 4.4
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
не совсем понял что надо но можетxargs -l
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы