Io-Redirection
ls
的輸出重定向到文件時出現奇怪的字元
我想在文本文件中列出目前工作目錄的組件
ls -1 > textfile
輸出看起來不錯。
1010661085645 1010729039145 1010747080245 1010849051345 1010859053445 1011046075845
但是,當我用 emacs 查看這個文本文件時,出現了幾個奇怪的字元
[0m[01;34m1010661085645[0m [01;34m1010729039145[0m [01;34m1010747080245[0m [01;34m1010849051345[0m [01;34m1010859053445[0m [01;34m1011046075845[0m
誰能解釋這裡發生了什麼?
那些“奇怪的字元”是用於為輸出著色的轉義序列。
這將以藍色列印該數字:
echo -e '\033[01;34m1010729039145\033[0m'
有關
man console_codes
更多詳細資訊,請參閱。您可以判斷
ls
在哪些情況下它會輸出顏色:--color[=WHEN] colorize the output; WHEN can be 'never', 'auto', or 'always' (the default); more info below
看起來你
ls
實際上是ls --color=always
. (鍵入type ls
以驗證。)通常
ls --color=auto
會做正確的事:它會在螢幕上列印顏色,但不會列印到文件中。如果您真的想要文件中的顏色,您必須決定是要查看實際的轉義序列還是解釋的顏色。
例如,該
less
命令將預設列印實際序列,但您可以使用以下-R
選項告訴它顯示顏色:-R or --RAW-CONTROL-CHARS Like -r, but only ANSI "color" escape sequences are output in "raw" form.
嘗試
less textfile
與less -R textfile
..