剪切彩色文本,忽略颜色标签

剪切彩色文本,忽略颜色标签

我的问题类似于这个;我想用它cut来模拟nowrapon tmux,但我的输出是彩色的。我知道我想保留多少列(50),但我不知道输出上有多少个颜色标签。剪切cut -c-50会生成各种不同的输出,具体取决于每行上有多少转义字符(颜色标签)。

所以,总结一下:我可以忽略颜色以固定宽度剪切文本,这样我总是得到 50 个彩色字符吗?

答案1

尝试:

perl -pe 's/^((?:(?>(?:\e\[.*?m)*).){50}).*/$1\e[m/'

这假设是 ansi 类型的转义序列。

这些带有转义序列,例如\e[31m设置颜色和\e[m/或\e[0m重置它。上面,我们\e[m在每行末尾添加,但根据输入的不同,这可能并不总是理想的。

相关内容