Удалите символ строки с помощью sed, если не соответствует шаблону - PullRequest
0 голосов
/ 14 июля 2020

После моего grep я сгенерировал файл с данными в качестве ключа и счетчика, но в отдельных строках:

$Value, "Some", $233kS
:2343
$AnotherCount, JunkValue
:38585
YetAnother, Nothing
:38484

Мне нужен файл, например:

$Value, "Some", $233kS:2343
$AnotherCount, JunkValue:38585
YetAnother, Nothing:38484

Шаблон счета исправлен, он всегда имеет форму: [0-9] * Можно ли использовать sed или любую однострочную команду?

Я смотрел заменить строку , но хочу только тогда, когда шаблон подсчета не совпадает.

Меня интересует решение, которое может работать для расширенной проблемы:

$Value, "Some", $233kS
$AnotherCount, JunkValue
:38585
YetAnother, Nothing
:38484

Должен выводиться:

$Value, "Some", $233kS$AnotherCount, JunkValue:38585
YetAnother, Nothing:38484

В основном, все строки, не соответствующие шаблону, не должны иметь символ конца строки.

1 Ответ

2 голосов
/ 14 июля 2020

Любой из них может вам помочь:

$ awk '!(FNR%2){ print b $0 }{b=$0}' file
$ paste -sd "\0\n" file

Обе эти строки предполагают, что нечетные строки должны быть объединены с четными

Примечание: согласно POSIX paste "\ 0" считается пустой строкой, а не -символом

...