2011-06-10 28 views
5

某些程序使用ANSI轉義序列創建美觀的進度條和內容。這很好。存儲腳本輸出時刪除ANSI代碼

但是,如果我把這種程序的輸出放到一個文件中,然後嘗試查看它,它會充滿奇怪的轉義序列。

有沒有辦法在記錄時剝去所有ANSI代碼?

我平時登錄腳本的輸出是這樣的:

./script >> /tmp/output.log 
+0

你不能只捕獲程序的輸出來分離日誌文件。換句話說,你爲什麼要*使用腳本?祝你好運! – shellter 2011-06-10 13:30:21

+0

腳本不是日誌腳本,腳本/程序是使用ANSI序列的東西。它也有正常的輸出,這是我不想存儲的正常輸出。應刪除ansi序列。 – Martin 2011-06-10 14:33:00

+0

這應該移至unix.stackexchange.com。 – 2011-06-10 14:36:59

回答

7

嘗試:

$ TERM=dumb ./script >> /tmp/output.log 

如果不工作,這是因爲ANSI代碼已被硬編碼到腳本,所以沒有簡單的方法來刪除它們。如果是這樣,那是因爲它正在做正確的事情,將相當於輸出的東西委託給libncurses或類似的東西,以便當您更改TERM變量時,庫不再發送這些代碼。