折叠终端中的长行输出

折叠终端中的长行输出

我经常会有很长的终端输出行,其中没有 \n,这些输出行很少有用,而且妨碍我找到我想要的输出(例如,错误日志或与 ack 匹配的最小化文件)。有没有可以折叠这么长的行的工具?对我来说,理想的情况可能是在行边栏中显示一行已折叠的指示,如果我确实想查看整行,可以单击以展开。我正在使用 OS X 终端,但如果它提供此功能,我很乐意切换到其他工具。一种解决方法是将终端宽度之后的行截断,以便我可以将输出传输到该终端,这也将很有帮助。

答案1

以下是一些简单的解决方案。要截断长度超过 80 个字符的行,请编写一个包含以下内容的脚本

#!/bin/sh
expand "$@" | cut -c1-80

并将程序导入其中。一个稍微复杂一点的方法是

#!/bin/sh
expand "$@" | awk '{ if (length <= 80) print; else print substr($0,1,77) "...";}'

当它丢弃数据时,这会添加...一个标记。它只提供前 77 个字符,因此它...本身不会超出范围。

expand命令用于将制表符扩展为空格,因为cutawk命令只是简单地计算字符,并且不会意识到包含超过十个制表符的行太长。

相关内容