Нет. это, вероятно, не будет работать. Это больше, в чем Вы нуждаетесь. Начальная загрузка от LiveCD. создает и монтирует, что начальная загрузка / Переустанавливает пакеты личинки и ядро. Какое распределение Вы используете?
Проблема не в вашем Perl-скрипте (который должен быть ненужным), а в ansi2html
, который является неполным.
Файл журнала показывает, что что-то напечатало какой-то текст, а затем
\ E [K
В ansi2html
сценарий находит escape-последовательности, а затем игнорирует все, кроме некоторых из найденных, например,
self.ansi_codes_prog = re.compile ('\ 033 \\\ ['' (\ [\\ d; \] *) '' (\ [a-zA-z \]) ')
Избавление от повторяющегося материала является самое простое в петле. Вот альтернативный сценарий, который работает для решения проблем, замеченных в ansi2html
для вашего примера:
#!/usr/bin/perl -w
while (<>) {
my $save = "";
while ( $save ne $_ ) {
$save = $_;
s/[^\010]\010\e\[K//;
}
$save = "";
while ( $save ne $_ ) {
$save = $_;
s/[^\010]\010//;
}
s/\e\[\?[;0-9]*[\100-\176]//g;
s/\e\][^\a]*\a//g;
print;
}
и (вызывая этот filterit
), используйте его следующим образом:
./filterit < 1.log | ansi2html >1.html