Linux(ubuntu)-sed,仅删除文件中的模式匹配

Linux(ubuntu)-sed,仅删除文件中的模式匹配,linux,sed,tail,Linux,Sed,Tail,我想阅读我在Linux ubuntu机器上托管的一个游戏的屏幕日志文件。我通过网络界面阅读它,一次只显示20行,因为它会变得太大,让我感到不舒服。但是,日志文件不断收到随机字符的垃圾邮件。请注意,它只发生在这个特定的游戏中 以下是一个例子: ;1m[34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m/[24d[m[39;49m[37m[40m[1d[0;1m[34 m[47m-[2

我想阅读我在Linux ubuntu机器上托管的一个游戏的屏幕日志文件。我通过网络界面阅读它,一次只显示20行,因为它会变得太大,让我感到不舒服。但是,日志文件不断收到随机字符的垃圾邮件。请注意,它只发生在这个特定的游戏中

以下是一个例子:

;1m[34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m/[24d[m[39;49m[37m[40m[1d[0;1m[34
m[47m-[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m/
[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m-[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m
[39;49m[37m[40m[1d[0;1m[34m[47m/[1;58H[0m[30m[47m1[24;3H[m[39;49m[37m[40m[1d[0;1m[34m[47m-[24d[m[39;49m[37m[40m[1d[0;1m[
34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m/[24d[m[39;49m[37m[40m[1d[0;1m[34m[47
m-[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m\[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m|[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m/[24d
[m[39;49m[37m[40m[1d[0;1m[34m[47m-[24d[m[39;49m[37m[40m[1d[0;1m[34m[47m\[24d[m[39;49m[37m[40m
这是我现在正在使用的代码。它删除了不必要的空格,在120个字符后添加了一行新行,并且只显示文件的最后20行

tail /srv/screenlog.0 | awk '{$1=$1};1' | sed 's/[^[:graph:] ]\+//g' | sed -e "s/.\{120\}/&\n/g" | sed -ne':a;$p;N;20,$D;ba'

我试着玩sed来移除那些随机的角色,但我所做的只是让它变得更糟。我真的想知道是否有一种方法可以将这些字符生成一个模式,并且只删除特定的模式而不影响文件的其余部分。

一些linux发行版附带了colorize实用程序。如果将其插入到管道中,可能会有所帮助,但不会删除所有不需要的字符,只删除转义码:

tail /srv/screenlog.0 | awk '{$1=$1};1' | sed 's/[^[:graph:] ]\+//g' | sed -e "s/.\{120\}/&\n/g" | sed -ne':a;$p;N;20,$D;ba'
tail /srv/screenlog.0 | colorize --clean-all | awk ...

这些看起来像是给文本输出着色。可能会有帮助。显示的示例显示了屏幕上的喷丝器这是我能想到的最好的。我真的需要让额外的角色消失。我试着在链接上玩这些例子,但是我没有做任何有用的事情。我正在使用Ubuntu 18.04。这是说找不到colorize命令。apt install colorizeMade命令工作。现在输出看起来像这样的d |[24d[1d/[24d[1d-[24d[24d[1d |[24d[1d/[24d[1d-[24d[1d-[24d[1d/[24d-[24d][:-看起来colorize无法处理所有的转义码。抱歉。我认为这些可能是VPA命令,用于在屏幕8.3.158上移动光标,其间穿插着微调器字符:/-| \嗯,我想监控的这个游戏的控制台非常混乱,难怪它看起来像这样。我会尝试让它像现在一样工作.