Как очистить вывод команды 'сценария' Linux

Я использую команду http://www.linuxcommand.org/man_pages/script1.html 'сценария' Linux для отслеживания некоторых интерактивных сессий. Выходные файлы, от которых содержат непечатные символы, включая мои нажатия клавиш клавиши Backspace.

Существует ли способ убрать эти выходные файлы, таким образом, они только содержат то, что было отображено на экране?

Или есть ли другой способ записать интерактивную сессию оболочки (ввод и вывод)?

35
задан 24.01.2011, 02:49

4 ответа

Если Вы хотите просмотреть файл, то можно отправить вывод через col -bp; это интерпретирует управляющие символы. Затем можно передать по каналу через меньше, если Вам нравится.

col -bp typescript | less -R

В некоторых системах col не принял бы аргумент имени файла, использовать этот синтаксис вместо этого:

col -bp <typescript | less -R
34
ответ дан 07.12.2019, 08:59

Для большого количества script вывод, я взломал бы сценарий жемчуга вместе многократно. Иначе вручите редактирование с хорошим редактором.

Вряд ли будет существующий автоматизированный метод удаления управляющих символов от script вывод способом, который воспроизводит то, что было отображено на экране в определенные важные моменты (такой как тогда, когда хост ожидал того первого символа некоторого ввода данных пользователем).

Например, экран мог бы быть пробелом за исключением Andrew $, если Вы затем ввели rm /* и нажатая клавиша Backspace двенадцать раз (намного больше, чем необходимый), что показывают на экране в конце этого, зависит от того, что оболочка выполняла, что Ваш ток stty настройки (который Вы могли бы изменить отчасти через сессию), и вероятно некоторые другие факторы также.

Вышеупомянутое относится к любому автоматизированному методу непрерывного получения ввода и вывода. Основная альтернатива берет "снимки экрана" или вырезает и вставляет экран в подходящее время во время сессии (который является тем, что я делаю для руководств пользователя, примечаний для дневного журнала, и т.д.).

2
ответ дан 07.12.2019, 08:59

Ответ на вторую часть моего вопроса должен использовать регистрирующееся средство на экране гну: ^A H из рабочей экранной сессии. Документация по http://www.gnu.org/software/screen/manual/screen.html#Logging

2
ответ дан 07.12.2019, 08:59

Если то, что Вы после, должно записать Ваши команды (например, позже превратить их в сценарий удара), то разумный взлом должен работать script(1), затем в выполненном

bash -x

Впоследствии grep выходной файл (обычно "машинописный текст") поиск строк, запускающихся с "+". Регулярное выражение ^\+ добьется цели.

2
ответ дан 07.12.2019, 08:59

Теги

Похожие вопросы