输出到文件时如何设置输出缓冲区width/columns?
How to set output buffer width/columns when outputting to file?
我想执行 yum list installed > file.txt
并将结果输出到一个没有被 X 字符包裹的 txt 文件。至少,我希望能够控制这个输出缓冲区的"width"。
我知道 stty columns 250
会将我的控制台的列宽 window 设置为 250 个字符,但是当我将输出重定向到文件时如何实现这一点?
之前肯定有人问过这个问题,但我只是找不到答案...
编辑:
这似乎是 yum
的事情,因为 ps aux > ps.txt
工作得很好。使用 yum,文件被限制为只有 80 个字符,所以我添加了 yum 标签。我不知道 yum 如何在屏幕和文件上提供不同的输出,而其他程序工作正常(另请注意,我是 bash 的初学者)。
我想你有两个选择。
编辑 yum 源 (http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz)。 80 在第 53 行 output.py 中进行了硬编码。
让 yum 相信它正在写入终端可能是可行的。是否——如果,如何——是否可以为我不确定的那个假终端设置列数。弹出的一件事是 Linux' unbuffer
(参见 Piping data to Linux program which expects a TTY (terminal))。也许一些自己编写的类似 unbuffer 的 C 包装器可能会使用 pty 并对其进行更多控制;甚至 bash 也可能有一个深奥的功能。
我偶然发现了一种使用 screen
:
的骇人听闻的方法
screen -L yum --color=never list installed
这将导致一个名为 screenlog.0
的文件包含输出,并且 yum 会认为它正在输出到与当前屏幕宽度相同的 TTY。
我想执行 yum list installed > file.txt
并将结果输出到一个没有被 X 字符包裹的 txt 文件。至少,我希望能够控制这个输出缓冲区的"width"。
我知道 stty columns 250
会将我的控制台的列宽 window 设置为 250 个字符,但是当我将输出重定向到文件时如何实现这一点?
之前肯定有人问过这个问题,但我只是找不到答案...
编辑:
这似乎是 yum
的事情,因为 ps aux > ps.txt
工作得很好。使用 yum,文件被限制为只有 80 个字符,所以我添加了 yum 标签。我不知道 yum 如何在屏幕和文件上提供不同的输出,而其他程序工作正常(另请注意,我是 bash 的初学者)。
我想你有两个选择。
编辑 yum 源 (http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz)。 80 在第 53 行 output.py 中进行了硬编码。
让 yum 相信它正在写入终端可能是可行的。是否——如果,如何——是否可以为我不确定的那个假终端设置列数。弹出的一件事是 Linux'
unbuffer
(参见 Piping data to Linux program which expects a TTY (terminal))。也许一些自己编写的类似 unbuffer 的 C 包装器可能会使用 pty 并对其进行更多控制;甚至 bash 也可能有一个深奥的功能。
我偶然发现了一种使用 screen
:
screen -L yum --color=never list installed
这将导致一个名为 screenlog.0
的文件包含输出,并且 yum 会认为它正在输出到与当前屏幕宽度相同的 TTY。