输出到文件时如何设置输出缓冲区宽度/列



我想执行yum list installed > file.txt并将结果输出到一个没有被 X 字符包装的 txt 文件中。至少,我希望能够控制此输出缓冲区的"宽度"。

我知道stty columns 250会将控制台窗口的列宽设置为 250 个字符,但是当我将输出重定向到文件时如何完成此操作?

这当然以前有人问过,但我就是找不到答案......

编辑:

这似乎是一件yum的事情,因为ps aux > ps.txt工作得很好。使用 yum,文件限制为仅 80 个字符,所以我正在添加 yum 标签。我不知道 yum 如何在屏幕上和文件上给出不同的输出,而其他程序工作正常(另请注意,我是 bash 的初学者)。

我认为您有两种选择。

  1. 编辑 yum 源 (http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz)。80 以 output.py 第 53 行硬编码。

  2. 让 yum 相信它正在写入终端可能是可行的。是否 - 如果,如何 - 是否可以为那个假终端设置列数,我不确定。弹出的一件事是Linux的unbuffer(参见将数据管道到Linux程序,它需要一个TTY(终端))。也许一个自我编写的类似 unbuffer 的 C 包装器可能会使用 pty 并对其进行更多控制;甚至 bash 也可能有一个深奥的功能。

我偶然发现了一种使用 screen 的黑客方法来做到这一点:

screen -L yum --color=never list installed

这将导致一个名为 screenlog.0 的文件包含输出,并且 yum 会认为它正在输出到与当前屏幕宽度相同的 TTY。

相关内容

  • 没有找到相关文章

最新更新