Вывод терминала перенаправлен в файл
Я перенаправляю вывод терминала в файл, используя:
Command > File.txt
но содержимое файла выглядит так:
ht tps://ask-ubuntu.ru/images/39dd55df3d8d517c8a55c1585c46ec79878d3654.png
В чем проблема? Как я могу сделать их нормальными?
3 ответа
Команда, которую вы выполняете (minicom
) использует "Escape-последовательности VT100" для позиционирования курсора.
Чтобы удалить символы, перечисленные выше, передайте файл через
sed -e 's/^[\[[0-9][0-9];[0-9][0-9]H//'
# ^^ actual ESCape
Я получил Escape, набрав Ctrl-VEsc.
Это escape-последовательности терминала, которые должны интерпретироваться драйвером терминала. Поскольку выходные данные из программы сохраняются в файл, (minicom
) программа довольно ошибочно выводит escape-последовательности, не проверяя, куда идет STDOUT.
Чтобы избавиться от escape-последовательностей, используя sed
удалить строки, содержащие 23;80H
, пробный прогон:
sed '/23;80H/d' file.txt
Модификация:
sed -i '/23;80H/d' file.txt
Если вы хотите сохранить резервную копию с расширением, например .bak
, делать:
sed -i.bak '/23;80H/d' file.txt
Это происходит потому, что вы не установили кодировку символов выходного файла в UTF-8.
Если вы не можете изменить файлы /etc/*,
вы можете вручную установить в меню терминала gnome Terminal| Установить кодировку символов в Unicode(Utf-8)
Ответ получен по этой ссылке