LINUX.ORG.RU

Замена переносов по условию

 


0

1

Доброго. Есть чудесный заменятор переносов.

cat days.txt | sed ':a;N;$!ba;s/\n/ /g'
Не могу сообразить, куда воткнуть условие. Если следующая строка не начинается с числа с точкой с запятой, то в ней нужно менять перенос на пробел. Например:
111;part1
part2
part3
part4
222;part1
333;part1
переносы надо поменять только в строках
111;part1
part2
part3

ТО, должно получиться

111;part1 part2 part3 part4
222;part1
333;part1

Спасибо!

Гуглить/применять negative lookahead

FeyFre ★★★★
()
$ cat /tmp/a
111;part1
part2
part3
part4
222;part1
333;part1

$ perl -ne 'chomp; print((/^\d+/ && $. != 1 ? "\n" : ($. != 1) ? " " : "") . $_)' /tmp/a
111;part1 part2 part3 part4
222;part1
333;part1
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.