Текст из Лексикона (форматирование из под простых редакторов текста)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
kotnaton
Сообщения: 234

Текст из Лексикона

Сообщение kotnaton »

Как, собственно, отменить жёсткое форматирование в текстах набранных в Лексиконе и тому подобных редакторах ?
Нужно: убрать из абзацев CR+LF, задающих жесткий размер строки, к примеру, 70 символов, и не убирать там, где следующая строка будет начинаться с красной строки ?

Ни unix2dos ничего с этими текстами не делает, tr \r - тоже.

бывает же такое ???
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Текст из Лексикона

Сообщение Bizdelnick »

Что подразумевается под "красной строкой"? Там пустая строка между абзацами, или её нет, а в начале первой строки абзаца пробелы?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Текст из Лексикона

Сообщение Bizdelnick »

kotnaton писал(а):
02.03.2016 18:43
unix2dos ничего с этими текстами не делает

А разве должен? dos2unix заменил бы \r\n на \n, но это же вроде не то, чего Вы хотите?

kotnaton писал(а):
02.03.2016 18:43
tr \r - тоже

tr -d \\r — эффект должен быть примерно такой же, как от dos2unix.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
kotnaton
Сообщения: 234

Re: Текст из Лексикона

Сообщение kotnaton »

Нашёл на форуме.

Код: Выделить всё

sed -i -rn '/^( |$)/{x;s/\n/ /g;p;$!b;$x};$!H;$p' TEXT.TXT


Но от этого остаются переносы, приходится следующей командой уточнить:

Код: Выделить всё

sed -i '/[[:alnum:]]- /s/- //g' TEXT.TXT

Можно ли это объёдинить в один sed ?
бывает же такое ???
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Текст из Лексикона

Сообщение Bizdelnick »

Можно. Добавьте в конец через точку с запятой.
Upd. А, нет, не в конец... Я в таком упоротом скрипте без info sed не разберусь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Текст из Лексикона

Сообщение Bizdelnick »

Я бы сделал так: perl -pi -e 'chomp; s/^\s+/\n/; s/([^-])$/$1 /; s/-$//;' text.txt
Есть недостаток: в начале файла появится лишний перевод строки, а в конце его не будет. Предполагается, что файл уже обработан dos2unix.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить