터미널에 원래 이스케이프 시퀀스를 표시하는 방법이 있습니까? (예: 색상을 제어하는 데 사용되는 것)
나는 이 UNIX.SE 문제에 부딪혔고 "빨간색" 출력을 필터링하고 싶었습니다(색상별로 명령 출력 필터링)
그러나 답변의 명령이 내 출력에 대해 작동하지 않습니다(예: git status
"추적되지 않은 파일"의 빨간색). 그들은 거기의 예를 위해 일합니다 echo -e '\033[00;31mtest\033[00m' | grep --color=none '[[:cntrl:]]'
. 필터링은 grep --color=none '[[:cntrl:]]'
내 출력에 적용되지만 텍스트를 다른 색상으로 표시하기도 합니다.
나는 내가 보고 있는 빨간색이 다른 빨간색임에 틀림없다고 생각했습니다 \e[31m
.
터미널 출력 원시 이스케이프 시퀀스를 갖는 방법이 있습니까?(올바른 순서를 사용하여 내가 보는 특정 빨간색을 필터링할 수 있도록)
(배시, 우분투 18.04)
- 갱신 -
명확히하기 위해 내 질문은 원래 이스케이프 시퀀스를 표시하는 방법입니다.
@egmont의 답변이 script
작동합니다. 기본적으로 script
출력을 기록하고 위 답변 중 하나를 사용하면 됩니다.질문예를 들어 빨간색 텍스트를 찾으세요.
script /tmp/a.txt
git status
exit
cat /tmp/a.txt | grep -Eo $'\e\\[31m[^\e]*\e\\[[03]?m'
git
다른 답변/의견도 내 사용이 파이프를 통해 색상을 얻지 못한다 는 것을 올바르게 지적합니다 .
답변1
귀하의 질문을 올바르게 이해했는지 확실하지 않습니다.
내 생각엔 네가 원하는 것 같아조사하다유틸리티(예: git status
)가 터미널 에뮬레이터로 보내는 내용입니다. 내가 맞나요?
유틸리티를 시작 script
하면 정확히 이 내용이 기록됩니다. 그런 다음 전화 git status
하거나 원하는대로하십시오. 그런 다음 셸을 종료 하면 이름이 지정된 파일이 생성되었음을 script
알려줍니다 . typescript
원하는 시퀀스를 찾으려면 텍스트 편집기에서 이 파일을 엽니다.
답변2
나는 내가 보고 있는 빨간색이 다른 빨간색임에 틀림없다고 생각했습니다
\e[31m
.
당신은 잘못 추측했습니다.
% ptybandage git 상태. | grep 규칙 ECMA48 디코딩 | 상표 SGR 31 '나' '영형' '디' '나' '에프' '나' '이자형' '디' ':' '' '' '' '아르 자형' '너' '엘' '이자형' ~의 SGR 0 CR 만약에 % 자식 상태. | grep 규칙 ECMA48 디코딩 | 상표 '나' '영형' '디' '나' '에프' '나' '이자형' '디' ':' '' '' '' '아르 자형' '너' '엘' '이자형' ~의 만약에 %
git
터미널에 쓰는 것을 고려 하지 않았 으므로 색상이 생성되지 않습니다.
추가 읽기
- https://unix.stackexchange.com/a/283984/5132
- https://unix.stackexchange.com/a/249801/5132
- 조나단 데보인 폴라드(2018). "
console-decode-ecma48
". 스낵 가이드. 소프트웨어.