Удалите БАКАЛАВРА НАУК и ESC от Файлов журнала

Я нашел эту информацию о выделении поиска tmux:

Согласно developer1, это не в настоящее время возможно в tmux. http://sourceforge.net/mailarchive/message.php?msg_id=27427973

Source:How я выделяю результат поиска в tmux?

2
02.06.2014, 03:05
3 ответа

Выходные данные сценария всегда будут содержать переводы строки, обратные пробелы и escape-последовательности ANSI, как указано на странице руководства. Примеры программ, которые все это правильно отображают: cat и more . cat машинописный текст и еще машинописный текст будут отображать машинописные тексты в точности так, как они выглядели, когда вы их записали.

Если вы все еще хотите очистить машинописные тексты, взгляните на этот сценарий. Это Perl-скрипт, на который я наткнулся некоторое время назад, он создан специально для очистки машинописных текстов, созданных с помощью скрипта .

Попробуйте, запустив script-Decutter myTypescript> cleanTypescript

Edit: На самом деле не имеет отношения к ответу, но вас может заинтересовать TermRecord . Он создает аккуратное, автономное представление сеансов терминала в HTML и Javascript, так что любой может просматривать их, не зная, как обрабатывать машинописные тексты. Все, что им нужно, - это веб-браузер.

3
27.01.2020, 21:57

Если вы используете аргумент -VTE для CAT , он избежит кодов терминалов.

E.G.

cat -vte myfile
2
27.01.2020, 21:57

Ссылка на скрипт-деклаттер не работает, но отображается на веб-странице :

#!/usr/bin/perl -wp

# clean up control characters and other non-text detritus that shows up
# when you run the "script" command.

BEGIN {
# xterm titlebar escape sequence
$xtermesc = "\x1b\x5d\x30\x3b";

# the occurence of a backspace event (e.g. cntrl H, cntrol W, or cntrl U)
$backspaceevent = "\x1b\\\x5b\x4b"; # note escaping of third character

# ANSI color escape sequence
$ansiesc = qr/\x1b\[[\d;]*?m/;

# technically, this is arrow-right. For some reason, being used against
# very long backspace jobs. I don't fully understand this, as evidenced
# by the fact that is off by one sometimes.
$bizarrebs = qr/\x1b\[C/;

# used as part of the xterm titlebar mechanism, or when
# a bell sounds, which might happen when you backspace too much.
$bell = "\x07"; # could use \a

$cr = "\x0d"; # could use \r

$backspace = "\x08"; # could use \b
}

s/$xtermesc.+?$bell//g;
s/[$cr$bell]//g;
s/${backspaceevent}//g;
s/$ansiesc//g;
while (s/(.)(?=$backspace)//) { s/$backspace//; } # frickin' sweet
# For every ^H delete the character immediately left of it, then delete the ^H.
# Perl's RE's aren't R, so I wonder if I could do this in one expression.
while (s/(..)(?=$bizarrebs)//) { s/$bizarrebs//; }

# notes
# ^[[7P has been spotted. Based on http://www.google.com/codesearch/p?hl=en#4qbG402gtc0/myScreen.C&q="[7P" it appears to be a numbered cursor jump, moving 7 characters (not sure if left or right).

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

  • он учитывает использование escape-последовательностей курсора влево, используемых при редактировании строк в bash (частично: автор, похоже, предположил, что он используется так же, как и backspace, а не его фактическое использование для перемещения курсор в тексте, который не изменен).
  • он не учитывает встроенные символы возврата каретки, используемые yum для индикатора выполнения.
  • его понятие escape-последовательностей для удаления ограничено escape-последовательностями SGR (заканчивающимися на m ) и игнорирует режимы , которые заканчиваются на h или 1 .

Для (более короткого) сценария, который выполняет последние два (но все еще не с левым курсором), см. Мой ответ на более старый вопрос

, как правильно регистрировать вывод консольной программы, которая часто обновляет «части» экран, что приводит к беспорядку в файле журнала?

0
27.01.2020, 21:57

Теги

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