2015-04-15 32 views
2

我想執行yum list installed > file.txt並將結果輸出到不包含X個字符的txt文件。至少,我希望能夠控制此輸出緩衝區的「寬度」。如何在輸出到文件時設置輸出緩衝區寬度/列?

我知道stty columns 250會將我的控制檯窗口的列寬設置爲250個字符,但是如何在將輸出重定向到文件時完成此操作?

肯定已經問過,但我只是找不到答案 ...

編輯:

這似乎是因爲ps aux > ps.txt作品就好了一個yum事情。有了yum,文件被限制爲只有80個字符,所以我添加了yum標籤。我不知道yum如何在屏幕和文件上給出不同的輸出,而其他程序工作正常(也請注意,我是bash的初學者)。

+0

嗯。有點C編,awk或sed腳本...... –

+0

'yum list installed> file.txt'根本沒有被包裝。儘管yum確實可以獲得很好的擬合輸出,但它並不需要與你的終端或任何東西相關。 –

+0

@Etan我編輯了我的問題與額外的細節。 – bokibeg

回答

3

我想你有兩個選擇。

  1. 編輯yum源碼(http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz)。 80硬編碼output.py,第53行。

  2. 這可能是可行的,使百勝相信它寫入終端。是否 - 如果,如何 - 可以設置該虛假終端的列數,我不確定。彈出的一件事是Linux'unbuffer(參見Piping data to Linux program which expects a TTY (terminal))。也許一個自我編寫的非緩衝類C封裝器可能會使用一個pty並對它有更多的控制;甚至bash可能會有一個深奧的特徵。

+0

你是對的,它在output.py中很難編碼!我會玩選項2,但至少我現在有東西:)。 – bokibeg

0

我碰到一個的hackish辦法做到這一點跌跌撞撞使用screen

screen -L yum --color=never list installed 

這將導致一個名爲screenlog.0包含輸出,以及百勝會認爲它是輸出到TTY與與當前屏幕寬度相同。