gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:52 26 4
gpt4 key购买 nike

我想读取我在 Linux (ubuntu) 机器上托管的一款游戏的屏幕日志文件。我通过 Web 界面阅读它,我一次只显示 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 | colorize --clean-all | awk ...

关于Linux (ubuntu) - sed,仅删除文件中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54729478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com