head -c와 같은 것을 가지면서 컬러 문자를 처리하는 방법

head -c와 같은 것을 가지면서 컬러 문자를 처리하는 방법

head와 sed가 색상 코드를 실제 문자로 취급하는 것처럼 보입니다. 입력에서 처음 n개의 실제 표시되는 문자를 어떻게 얻을 수 있습니까?

답변1

아마도 그다지 효율적이지는 않을 것입니다. 그러나 GNU를 사용하면 다음과 같은 작업을 awk수행할 수 있습니다.

gawk -v RS='\033\\[[;[:digit:]]{0,16}[[:alpha:]]|.' -v ORS= -v count=123 '
  {n += RT ~ /^[[:print:]]$/}; n > count {exit}; {print RT}'

( count얻고 싶은 문자 수는 어디에 있습니까?)

head -c계산은 수량 이지만 참고하세요바이트, 위에서 계산된 수량수치.

줄 바꿈, 캐리지 리턴 또는 탭 문자와 같은 제어 문자와 \e[123;123x색상 문자(여기서는 xis m) 또는 커서 위치 지정 문자(여기서는 xis H) 와 같은 형식의 이스케이프 시퀀스만 고려합니다.

관련 정보