BBS 文章裡頭通常會有一些 ANSI 控制碼, 用來在彩色終端機畫面下呈現顏色或閃爍反白之類的效果, 若文字檔裡有這些控制碼, 可以寫個正規表達式(regular expressions)把它去掉.
用 vim 打開一個有 ANSI 控制碼的文字檔, 下這個指令:
:%s/\e\[[0-9;]*m/g
再存檔即可.
或者是在 Linux 環境下用 sed 指令, 假設有個 test.eml 想去掉裡面的 ANSI 控制碼:
$ cat test.eml | sed -e ’s/\x1b\[[0-9;]*m//g’ > test.txt
就會自動產生 test.txt 檔, 裡頭已經沒有任何控制碼.
這個方式並沒有辦法把移位碼移除掉, 如果想移除移位碼的話, 可以試試把正規表達式的部份改成這樣:
\x1b\[[0-9;]*[mABCDHJKsu].
另外, ANSI 的 escape 字元在正規表達式裡要用 \x1b 代表(ASCII碼16進位), 但是在 vim 裡要寫成 \e ,這也是要注意的地方.
參考資料:

