Вот еще один способ с awk
:
awk 'ORS=NR%2?FS:RS' file
$ cat file
KEY 4048:1736 string
3
KEY 0:1772 string
1
KEY 4192:1349 string
1
KEY 7329:2407 string
2
KEY 0:1774 string
1
$ awk 'ORS=NR%2?FS:RS' file
KEY 4048:1736 string 3
KEY 0:1772 string 1
KEY 4192:1349 string 1
KEY 7329:2407 string 2
KEY 0:1774 string 1
Как указано Ed Morton в комментариях, этолучше добавить брекеты для безопасности и parens для переносимости.
awk '{ ORS = (NR%2 ? FS : RS) } 1' file
ORS
означает разделитель выходной записи.Здесь мы тестируем условие, используя NR
, в котором хранится номер строки.Если модуль NR
является истинным значением (> 0), тогда мы устанавливаем Разделитель выходного поля на значение FS
(Разделитель полей), которое по умолчанию является пробелом, в противном случае мы присваиваем значение RS
(ЗаписьРазделитель), который является новой строкой.
Если вы хотите добавить ,
в качестве разделителя, используйте следующее:
awk '{ ORS = (NR%2 ? "," : RS) } 1' file