명령의 원시 형식 출력을 어떻게 얻을 수 있나요?

명령의 원시 형식 출력을 어떻게 얻을 수 있나요?

프로그램이 출력 형식을 지정하기 위해 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를 사용하고 있습니다.

답변1

새 셸에서 녹음을 시작한 다음 편집기를 사용하거나 셸에 입력하여 녹음을 종료하는 등 script /tmp/output의 명령을 입력하고 파일을 보는 데 사용됩니다 ./tmp/outputcat -vetexit

답변2

16진수 뷰어(예: , )를 통해 출력을 실행하는 것이 가장 좋습니다 od.hexdumpxxd

% 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|
% 

답변3

ls를 위해 당신은 할 수 있습니다

export CLICOLOR_FORCE=X
ls -G | cat -vet

답변4

어쩌면 간단한 것일 수도 있습니다.

 $ ls --color=always  |  od -cAn

충분할 것입니다.

관련 정보