Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Друзья!

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

cat  setfont > f.txt


Получаем неудобочитаемый файл. Там, похоже,жирные и разноцветные символы хитро закодированы, не одним байтом, а двумя. Я, конечно, могу поковыряться и на сях извлечь все непечатаемые символы из f.txt и посмотреть, что получится, но нет ли способа попроще?

Прочёл man cat и ничего для себя полезного не извлёк.

На данный момент у меня в терминале, похоже, разноцветный режим не установлен и все буквы белые. Но жирные всё равно среди них попадаются.

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

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Bizdelnick »

Не понял, чего Вы хотели добиться. Эта команда почти аналогична cp setfont f.txt.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Bizdelnick писал(а):
13.01.2016 22:07
Не понял, чего Вы хотели добиться.
Я хотел добиться чтобы файл, полученный указанным мной способом был читаемым и чтобы там не было кракозябров.

М... Ну я в файл f.txt перенаправляю содержание setfont и в файле не должно быть кракозябров.

Как ещё сказать-то...

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

cp setfont f.txt


cp: не удалось выполнить stat для "setfont": Нет такого файла или каталога
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Bizdelnick »

монах Тук писал(а):
13.01.2016 22:14
файл, полученный указанным мной способом

Каким именно способом Вы хотели получить файл? Я не понимаю. Или у Вас уже есть файл setfont, или его нет.

монах Тук писал(а):
13.01.2016 22:14
был читаемым и чтобы там не было кракозябров.

А что там должно быть?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Bizdelnick, прошу прощения.

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

man setfont > f.txt
создаст файл наполовину заполненный кракозябами. В нём будет содержание страницы man для команды setfont. Но те символы, которые в консоли выглядели бы жрными или цветными по команде man setfont, на их месте и будут кракозябры. Надо, чтобы их не было.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Bizdelnick »

Никаких кракозябров там быть не должно. Там могут быть управляющие символы терминала, хотя это, видимо, зависит от конкретной реализации man, используемой в slackware: у меня при перенаправлении вывода в файл попадает только текст. Покажите получившийся файл.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Bizdelnick писал(а):
13.01.2016 23:02
Покажите получившийся файл.
вот он
Вложения
ms.txt
(8.79 КБ) 28 скачиваний
Спасибо сказали:
Аватара пользователя
Фантом
Сообщения: 452
ОС: openSUSE

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Фантом »

Есть такая полезная команда: man man (странно, правда?). Если почитать то, что она выводит, обнаружится, что у команды man есть ключи, позволяющие получить желаемое. Например, можно сделать так: man -Tutf8 man > blablabla.txt.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение SLEDopit »

У вас случайно переменная MAN_KEEP_FORMATTING не выставлена?

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

       MAN_KEEP_FORMATTING
              Normally, when output is not being directed to a terminal  (such
              as  to a file or a pipe), formatting characters are discarded to
              make it easier to read the result without special  tools.   How‐
              ever,  if  $MAN_KEEP_FORMATTING  is  set to any non-empty value,
              these formatting characters are retained.  This  may  be  useful
              for  wrappers  around  man that can interpret formatting charac‐
              ters.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Фантом писал(а):
14.01.2016 00:11
man -Tutf8 man > blablabla.txt.
пишет man: invalid option -- 'T'
А если маленькую t использовать, тогда выдаёт весь вывод в одну строку без абзацев.

SLEDopit писал(а):
14.01.2016 00:12
У вас случайно переменная MAN_KEEP_FORMATTING не выставлена?
её вообще нет,

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

echo $MAN_KEEP_FORMATTING

выдаёт пустую строку

И у меня по выводу man man в секции ENVIRONMENT нет упоминания о переменной MAN_KEEP_FORMATTING
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение bormant »

Предупреждаю всех, желающих помочь ТС, советы про man-db (такая реализация man) давать не надо, нет тут man-db.

А по теме -- прямо сейчас не могу посмотреть, но...
Если повернуться к вопросу лицом, 1) нужен "только текст" страницы руководства (например, отдать кому-то в Блокноте читать под Windows) или 2) отображение в терминале (консоли, эмуляторе терминала)?
Если второе, то less в помощь, ключики -R или -r могут поменять картинку. Способ форматирования для вывода на экран задается параметром NROFF файла настройки man, если сейчас не переехал, то /usr/lib/man.conf (groff с правильными параметрами вполне справляется с задачей).
Тот же mcview (F3 в mc) умеет замечательно отображать форматированный страницы руководств.

Плюс, многие программы умеют при выводе в файл самостоятельно отключать "цветастость", те же ls, grep...
Поэтому, если задать вопрос о том, что нужно сделать, а не о том, как сделать, результат может быть получен намного быстрее. (Пример: "как изобрести машину времени" vs. "как изучить C++ за 21 день", если вы понимаете, о чем идет речь).
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

bormant писал(а):
14.01.2016 08:07
1) нужен "только текст" страницы руководства (например, отдать кому-то в Блокноте читать под Windows)
дадада именно так, именно просто файл. Текстовый файл, который я мог бы открыть в каком-нибудь текстовом редакторе. И не увидеть этих дурацких управляющих символов, а просто скромный текст с абзацами. То есть less c ключами -R и -r не подходят- они же для вывода на экран. Так же как mc (последний вообще не подходит, он по F3 отображает либо форматированный текст (с цветастыми и жирными буквами, чего мне НЕ НАДО), либо кракозябры)

Нашёл, но всё под винду
http://forum.farmanager.com/viewtopic.php?...57&start=80

Так опять, вопросы по качеству программ имеются. Но это уже программы под винду. Вопрос открыт.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Bizdelnick »

монах Тук писал(а):
14.01.2016 22:23
Нашёл, но всё под винду

Что-то Вы не то искали. Вам не надо ничего конвертировать (ведь проблема не в кодировке), Вам надо настроить свой man, чтобы он на выходе выдавал чистый текст. Поизучайте его документацию, если ничего не получится — может местные слакварщики чего подскажут. Ещё можно использовать не man, а напрямую groff.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1100
ОС: ArchLinux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Black »

Вот то, что нужно. Если ещё нужно.
To get a plain text version of a man page, without backspaces and underscores, try

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

# man foo | col -b > foo.mantxt

Кусочек из man man.
А ещё там же написано как конвертировать в HTML и ps/pdf :)
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Black писал(а):
17.01.2016 14:00
Вот то, что нужно. Если ещё нужно.
To get a plain text version of a man page, without backspaces and underscores, try

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

# man foo | col -b > foo.mantxt

Кусочек из man man.
А ещё там же написано как конвертировать в HTML и ps/pdf :)
спасибо, а то я закалебался уже groff c разными параметрами писать. А как вы догадались?

Дело в том, что запрос-то был на убирание цветного текста и жирных символов (что-то типа bold font и color character). Тут оно и делается, только называется почему-то обратным пробелом и подчёркиванием. Я бы в жизнь не догадался, что одно из них значит зелёный (да любой, кроме белого) цвет.

Кроме того, узнал, что col убирает какой-то символ обратной подачи, который мне даром не нужен. Ну сам бы я в жизнь не допёр, что col это самое оно.
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1100
ОС: ArchLinux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Black »

Я никак не догадывался. Я набрал команду "man man" и прочитал.
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение монах Тук »

Black писал(а):
19.01.2016 19:41
Я никак не догадывался. Я набрал команду "man man" и прочитал.
А, вы прочли там что-то типа delete bold font и delete color character? Молодцом, чё. Ну а я не смог.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение Bizdelnick »

монах Тук
Правильные ключевые слова для поиска в теме таки фигурировали:
Bizdelnick писал(а):
14.01.2016 22:30
Вам надо настроить свой man, чтобы он на выходе выдавал чистый текст.
Black писал(а):
17.01.2016 14:00
To get a plain text version of a man page, without backspaces and underscores
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Как перенаправить вывод с консоли в файл, учитывая что в выводе разноцветные и жирные символы?

Сообщение yars »

В помощь man man. Русский перевод доступен здесь. Правда, имейте в виду, что многие переводы руководств устарели.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Ответить