LINUX.ORG.RU
решено ФорумAdmin

Вопрос про awk.

 , ,


0

1

Есть команда

aa=`virsh list | sed '1,2d'| sed '/^$/d'| awk '{print $2":"$3}'`
Его вывод:
server1:running server2:running etc
Хочу получить вывод не в одну строку а в несколько
как-то так:
server1:running
server2:running
Вот что я пробовал:
virsh list | sed '1,2d'| sed '/^$/d'| awk '{print $2":"$3"\n"}'
пробовал и sed-ом:
virsh list | sed '1,2d'| sed '/^$/d'| awk '{print $2":"$3"\n"}'| sed 's/\ /\n/'
Подскажите правильный вариант.
UPD: virsh list сам по себе вывод выдаёт в несколько строк.

★★★★★

Последнее исправление: dada (всего исправлений: 1)

Так может конвейер выдаёт всё как надо, но потом у тебя при выводе или обработке переменной переводы строк выпадают из игры. В команды не вникал, было бы проще, если бы ты скомпоновал тестовый ввод.

Krieger_Od ★★
()

Проблема не в awk. Переменная aa, думается, содержит верное значение (с переносами строк). Просто надо её правильно выводить

echo "$aa"
а не
echo $aa

unterwulf
()
Ответ на: комментарий от Krieger_Od

Так может конвейер выдаёт всё как надо, но потом у тебя при выводе или обработке переменной переводы строк выпадают из игры.

это я понял. Только кто и когда перевод строки на скамейку запасных отправляет - не могу понять
Просто почему-то не работает и добавление в конце sed 's/\ /\n/'
Вроде всё правильно:

# echo "aa bb"
aa bb
# echo "aa bb" | sed 's/ /\n/'
aa
bb

dada ★★★★★
() автор топика
Ответ на: комментарий от unterwulf

Тот неловкий момент.

Спасибо.

dada ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.