我有一個運行並輸出到文本文件的bash腳本,但是它使用的顏色代碼也包含在我想知道的是如何從文件中刪除它們,即使用bash刪除文本文件中的ANSI顏色代碼
^[[38;1;32mHello^[[39m
^[[38;1;31mUser^[[39m
,所以我只是想會留下您好,用戶
我有一個運行並輸出到文本文件的bash腳本,但是它使用的顏色代碼也包含在我想知道的是如何從文件中刪除它們,即使用bash刪除文本文件中的ANSI顏色代碼
^[[38;1;32mHello^[[39m
^[[38;1;31mUser^[[39m
,所以我只是想會留下您好,用戶
這是否解決了問題?
$ echo "^[[38;1;32mHello^[[39m" | sed -e 's/\^\[\[[0-9;]\{2,\}m//g'
Hello
乾杯!
sed -r "s/\x1B\[(([0-9]{1,2})?(;)?([0-9]{1,2})?)?[m,K,H,f,J]//g" file_name
該命令從文件中刪除
特殊字符和顏色代碼,這些都是一些ANSI代碼: ESC[#;#H or ESC[#;#f
把光標移到行號,列# ESC[2J
清晰的屏幕和主光標 ESC[K
明確到行尾,
請注意,如果是明碼,則不會有數字和分號;
同意下面的評論: 如果數字是超過2位好心使用:
sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g" filename
不能保證代碼中的數字部分的數量,那些用於設置顏色的數字部分最多可以有5個數字而沒有冗餘。用於設置其他功能(例如,linux consile bell頻率)的代碼可以連續超過2個數字。 – Jasen
同意你Jasen :-) –
相關答案使用Python:http://stackoverflow.com/questions/14693701/how-can-i-remove -sys-escape-sequences-from-a-string-in-python – GreyCat
Duplicate:http://unix.stackexchange.com/questions/4527/program-that-passes-stdin-to-stdout-with-color代碼剝離 – GreyCat