用于将输出修剪为终端宽度的实用程序?

its*_*dok 16 linux terminal ubuntu

当我做

ps aux
Run Code Online (Sandbox Code Playgroud)

输出被很好地修剪到我的终端的宽度,所以长的过程描述不会超过一行。但是,如果我将它管道化到其他任何东西中,那么长线就会返回。

我意识到这是一种正确的行为,因为 ps 不再输出到 tty 并且整个输出可能对处理至关重要。我想要的是另一个实用程序,它会在我完成后裁剪输出。

我希望能够做这样的事情:

ps aux | grep -v 'www-data' | nowrap  
Run Code Online (Sandbox Code Playgroud)

nowrap是我正在寻找的虚构工具。它将确保长行被裁剪而不会溢出。

有这样的吗?

ret*_*ile 19

您可以使用该cut命令对输出进行切片。例如:

ps aux | grep -v 'www-data' | cut -c-80
Run Code Online (Sandbox Code Playgroud)

这将只保留每行的前 80 个字符。您当然可以将其设置为您想要的任何宽度。

如果使用 bash 命令行,您可以这样做:

ps aux | grep -v 'www-data' | cut -c-$COLUMNS
Run Code Online (Sandbox Code Playgroud)

如果输出有制表符,则可能无法正确计算宽度。expand可以将制表符转换为空格:

ps aux | grep -v 'www-data' | expand | cut -c-$COLUMNS
Run Code Online (Sandbox Code Playgroud)

  • 我找到了 `expand` 并编辑了答案以包含它。它纠正了选项卡 (2认同)