LINUX.ORG.RU

Баш и многострочные параметры

 , ,


0

1

Есть конфиг, в котором часть параметров многострочные:

varX=valueX
varY=valueY1
valueY2
valueY3
varZ=valueZ
Как бы это поэлегантней вычитать в varX=valueX, varY='valueY1 valueY2 valueY3', varZ=valueZ?
Годится решение «если в строке нет знака '=', то приклеить её к предыдущей».

Deleted

Ну в процессе вычитки и смотри след. строку, если нет =, то клей к предыдущей

anonymous ()
частный случай

awk -F'=' 'NF < 2 {d[p]=d[p]" "$1}; NF >= 2 {p=$1; d[p]=$2}; END {for (k in d) {print k" = "d[k]}}'

varX = valueX
varY = valueY1 valueY2 valueY3
varZ = valueZ
anonymous ()

еще вариант:

$ echo "
varX=valueX
varY=valueY1
valueY2
valueY3
varZ=valueZ
" | xargs | sed -E 's/( [^ ]+=)/, \1/g'

varX=valueX, varY=valueY1 valueY2 valueY3, varZ=valueZ

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