?

Log in

No account? Create an account

Сб, 24 дек, 2016, 00:11
В поисках форматтера

Пребываю в тихом шоке. На дворе вроде XXI век, а для линукса нет стандартного форматтера, который подровнял бы текст под заданную ширину, и при этом работал бы с UTF-8.

По возможностям меня прекрасно устраивает fmt, но он русские буквы считает за две. Вроде бы par должен уметь UTF-8, но взятый из репозитория Убунты с этим тоже не справился.

Как же так? Наверное, я просто чего-то не знаю?

Пт, 23 дек, 2016 21:22 (UTC)
pigdeon

Сдается мне, что это [опять] желание странного(тм). Используй текстовый редактор, или браузер, например.

Пт, 23 дек, 2016 23:36 (UTC)
egorius

Мне надо унутре скрипта это сделать. И наличие fold, fmt и прочего говорит о том, что не такое уж это и странное желание. Но не поддерживать в наше время UTF?..

Сб, 24 дек, 2016 07:07 (UTC)
electrodyssey

Ой до чего же интерсно! Предлагаю "админовский" путь решения, смешной, но вроде рабочий, у меня заработало на убунту 16.04.

cat russian_utf8article.txt | iconv -f utf-8 -t cp1251 | par w80 | iconv -f cp1251 -t utf-8 > output.txt

Подсмотрел в интернете, кто-то видимо уже успел побиться фейсом о тейбл:
http://vim.wikia.com/wiki/Par_text_reformatter

Сб, 24 дек, 2016 08:46 (UTC)
d_byzero

А и правда! Остроумный вариант!
(Я, правда, тоже не очень понимаю, зачем в XXI веке нужно так текст форматировать ;-))

Сб, 24 дек, 2016 08:59 (UTC)
egorius

Ну, пока не научились передавать мысли на расстоянии, форматирование текста иногда пригождается (:

Edited at 2016-12-24 09:00 (UTC)

Вс, 25 дек, 2016 14:55 (UTC)
d_byzero

Я какбэ догадываюсь. Но в наш век пропорциональных шрифтов, когда символ '\n' отмечает конец абзаца...

Вс, 25 дек, 2016 17:56 (UTC)
egorius

В консольке-то все моноширинное даже в наш век. Мне на консоль надо текст выводить изнутри скрипта, в режиме живой демонстрации.

Вс, 25 дек, 2016 20:56 (UTC)
d_byzero

Да я уж понял

Сб, 24 дек, 2016 08:56 (UTC)
egorius

Дык, именно так пока и пришлось сделать, но такой костыль!..

Сб, 24 дек, 2016 10:35 (UTC)
electrodyssey

зато работает, а пурист бы написал патч под par, но лень матушка :)

Сб, 24 дек, 2016 10:44 (UTC)
egorius

Патч вроде как уже давно написан и лежит на просторах, но собирать это руками и таскать потом за собой неохота.

Сб, 24 дек, 2016 22:28 (UTC)
electrodyssey

:) да, понимаю

Сб, 24 дек, 2016 06:29 (UTC)
hardsign

Locale правильно выставлена?

Сб, 24 дек, 2016 06:31 (UTC)
hardsign

Ну, и если всё правильно, "а включаешь - не работает", используй iconv

Сб, 24 дек, 2016 09:09 (UTC)
egorius

Выставлена, да.
Ну iconv-то понятно, его и прикрутил, но XXI век!

Сб, 24 дек, 2016 09:28 (UTC)
hardsign

Как тут выше товарищи отметили, в XXI веке есть xml, html, docx, odt... И вдруг форматирование текста?

Сб, 24 дек, 2016 10:49 (UTC)
egorius

Задача специфическая, для учебных курсов. Мне надо показывать, как работают всякие команды. Чтобы не набирать их руками в консольке, сделан скрыпт, который в нужных местах делает паузу. Ну и комментарии надо выводить тоже, чтобы самому не забыть, о чем речь. И вот комментарии я хочу аккуратно форматировать перед выводом.