URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4259
[ Назад ]

Исходное сообщение
"sed -объединить строки"

Отправлено Проезжий , 14-Сен-15 11:10 
Дано текстовый файл много строк вида:
Я вам пишу чего же боле,,,
Я вам пишу чего же боле2,
Я вам пишу чего
же боле3,,,
Я вам пишу чего же боле4,,
Я вам пишу чего же боле5, ,

Как видно одну из строк перевело не там где нужно
Как бы их объединить? Если известно, что число запятых,заканчивающих строку может варьироваться и содержать пробелы и иные символы. Цифры в тексте приведены лишь для понимания,что строки различны.


Содержание

Сообщения в этом обсуждении
"sed -объединить строки"
Отправлено B , 14-Сен-15 20:10 
>Как бы их объединить?

Вот так  для приведенного текста
sed -r '/[[:digit:][:alpha:]]$/{N;s/\n//}'

>число запятых,заканчивающих строку может варьироваться и содержать пробелы и иные символы

Иные символы это что?  

>[оверквотинг удален]
> Я вам пишу чего же боле,,,
> Я вам пишу чего же боле2,
> Я вам пишу чего
> же боле3,,,
> Я вам пишу чего же боле4,,
> Я вам пишу чего же боле5, ,
> Как видно одну из строк перевело не там где нужно
> Как бы их объединить? Если известно, что число запятых,заканчивающих строку может варьироваться
> и содержать пробелы и иные символы. Цифры в тексте приведены лишь
> для понимания,что строки различны.


"sed -объединить строки"
Отправлено Max Sh , 15-Сен-15 12:57 
>[оверквотинг удален]
>> Я вам пишу чего же боле,,,
>> Я вам пишу чего же боле2,
>> Я вам пишу чего
>> же боле3,,,
>> Я вам пишу чего же боле4,,
>> Я вам пишу чего же боле5, ,
>> Как видно одну из строк перевело не там где нужно
>> Как бы их объединить? Если известно, что число запятых,заканчивающих строку может варьироваться
>> и содержать пробелы и иные символы. Цифры в тексте приведены лишь
>> для понимания,что строки различны.

Если первая всегда заглавная,то разумней (по ресурсам) отслеживать регистр первой буквы или отслеживать наличие запятой в конце строки

модифицировать примеры отсюда http://ant0.ru/sed1line.html

Если линия заканчивается обратной косой чертой "\", то присоединить следующую линию:

    sed -e :a -e '/\\$/N; s/\\\n//; ta'

Если линия начинается с знака "=", то присоединить ее к предыдущей линии и заменить "=" пробелом:

    sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'


"sed -объединить строки"
Отправлено pavlinux , 16-Сен-15 15:17 
> Как бы их объединить? Если известно, что число запятых,заканчивающих строку может варьироваться и содержать пробелы и иные символы.

Для стихов надо LaTeX со словарями юзать