![head -c와 같은 것을 가지면서 컬러 문자를 처리하는 방법](https://linux55.com/image/147251/head%20-c%EC%99%80%20%EA%B0%99%EC%9D%80%20%EA%B2%83%EC%9D%84%20%EA%B0%80%EC%A7%80%EB%A9%B4%EC%84%9C%20%EC%BB%AC%EB%9F%AC%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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
색상 문자(여기서는 x
is m
) 또는 커서 위치 지정 문자(여기서는 x
is H
) 와 같은 형식의 이스케이프 시퀀스만 고려합니다.