Osx
如何獲得命令的原始格式輸出?
我想知道程序將哪些控制序列發送到 bash 以格式化它們的輸出。
例如,如果我轉儲,
man less
我可以辨別哪些部分是粗體或下劃線的。DDEESSCCRRIIPPTTIIOONN _L_e_s_s is a program similar to _m_o_r_e (1), but which allows backward move- ment in the file as well as forward movement.
但是,如果我將
ls -G
’ 的輸出發送到文件,則沒有關於其顏色格式的數據。我正在使用 Mac OS X。
用於
script /tmp/output
在新的 shell 中開始錄製,然後鍵入命令並查看/tmp/output
文件,例如使用編輯器或cat -vet
. 在 shell 中鍵入exit
以退出錄製。
最好通過十六進制查看器執行輸出(例如
od
,hexdump
,xxd
):% man less | hexdump -C | head -5 00000000 4c 45 53 53 28 31 29 20 20 20 20 20 20 20 20 20 |LESS(1) | 00000010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000040 20 20 20 20 20 20 20 4c 45 53 53 28 31 29 0a 0a | LESS(1)..| 00000050 0a 0a 4e 08 4e 41 08 41 4d 08 4d 45 08 45 0a 20 |..N.NA.AM.ME.E. | %
然後,您可以在
ascii(7)
.至於“不起作用”的廢話,快速瀏覽
ls(1)
手冊會導致:% env TERM=xterm-color CLICOLOR_FORCE=1 ls -G | hexdump -C | head -3 00000000 1b 5b 33 34 6d 41 70 70 6c 69 63 61 74 69 6f 6e |.[34mApplication| 00000010 73 1b 5b 6d 1b 5b 6d 0a 1b 5b 33 34 6d 44 65 73 |s.[m.[m..[34mDes| 00000020 6b 74 6f 70 1b 5b 6d 1b 5b 6d 0a 1b 5b 33 34 6d |ktop.[m.[m..[34m| %