如何在保留ANSI控制序列的同时转储GNU屏幕回滚缓冲区?

时间:2018-06-04 00:13:56

标签: gnu-screen ansi-escape

在屏幕会话中,可以通过输入^A:hardcopy -h /path/to/filename将其回滚缓冲区保存到文件中。但是,这会从输出中删除所有ANSI控制序列。

我想要less -R之类的内容,但是要保存回滚缓冲区。

生成彩色文本的示例脚本:

#!/bin/bash
# both times, the word 'red' is printed in bright red text.
printf 'example \x1b[1;31mred\x1b[m output\n' |tee example.log
cat example.log

您还可以使用less -R example.log

查看该文件

1 个答案:

答案 0 :(得分:0)

当终端使用ANSI序列时,它不会逐字地将它们存储在内存中,而是转换为屏幕上各个字符的显示属性。显然,hardcopy并非旨在输出这些属性。

但是,如果启用日志记录,您可能会得到所需的内容。例如,请参阅this answer