我尝试了几乎所有我能想到的 sed 命令,还有我在寻找提示时在这里找到的一堆命令和一些其他随机的想法,但我就是弄不明白。
作为背景,我一直在使用这个脚本一段时间以来,我一直在用它记录我其中一个工作站上的终端会话。它非常有用,因为我经常会破坏这个特定工作站上的东西,而进入它并查看哪些东西损坏了或哪些东西需要恢复是很有用的。但是,当我在 Sublime 中打开它时,输出结果非常糟糕(我将在下面展示一个例子)。
我也尝试过ANSIescape/SublimeANSI来修复它,因为它应该有助于从视觉上改善此类问题,但却留下了许多随机字符(我将在下面发布截图)
使用上述脚本在 Sublime 中打开终端记录的示例(注意 - 我用它们的视觉 ASCII 等效项替换了 Sublime 中的转义字符(即,我用通过键盘输入的实际字符替换了不可粘贴的 �)):
<0x1b>]0;me@me: /etc/xml<0x07><0x1b>[01;32mme@me<0x1b>[00m:<0x1b>[01;34m/etc/xml<0x1b>[00m$ ls -lah
total 68K
drwxr-xr-x 3 root root 4.0K May 27 2020 <0x1b>[0m<0x1b>[01;34m.<0x1b>[0m
drwxr-xr-x 197 root root 12K Feb 17 19:05 <0x1b>[01;34m..<0x1b>[0m
-rw-r--r-- 1 root root 3.3K May 27 2020 catalog
-rw-r--r-- 1 root root 3.2K May 27 2020 catalog.old
-rw-r--r-- 1 root root 11K May 27 2020 docbook-xml.xml
-rw-r--r-- 1 root root 10K May 27 2020 docbook-xml.xml.old
drwxr-xr-x 2 root root 4.0K Oct 15 2019 <0x1b>[01;34mresolver<0x1b>[0m
-rw-r--r-- 1 root root 1.4K May 27 2020 sgml-data.xml
-rw-r--r-- 1 root root 1.2K May 27 2020 sgml-data.xml.old
-rw-r--r-- 1 root root 840 May 27 2020 xml-core.xml
-rw-r--r-- 1 root root 673 May 27 2020 xml-core.xml.old
<0x1b>]0;me@me: /etc/xml<0x07><0x1b>[01;32mme@me<0x1b>[00m:<0x1b>[01;34m/etc/xml<0x1b>[00m$
应用 ANSIescape(来自上面的链接)之前的 Sublime 屏幕截图:
[注:屏幕截图是在复制文件后在 Mac 上显示的——在 Linux 上的行为相同]
应用 ANSIescape(来自上面的链接)之前的 Sublime 屏幕截图:
[注:屏幕截图是在复制文件后在 Mac 上显示的——在 Linux 上的行为相同]
可以看出,此方法中部分<0x1b>
和<0x07>
和]0;
保持不变。如果文件很大,转义会变得更加严重。
有人对以下两个问题有什么好的建议吗:A:修复我上面链接的脚本,以使其不会完全损坏;B:使 ANSIescape 适用于这种用例;C:在我尝试查看日志之前删除这些字符?