색상 텍스트 잘라내기, 색상 레이블 무시

색상 텍스트 잘라내기, 색상 레이블 무시

내 문제는 다음과 비슷합니다이것cut; 시뮬레이트 nowrap하는 데 사용하고 싶지만 tmux출력이 색상으로 표시됩니다. 유지하려는 열 수(50개)는 알고 있지만 출력에 원하는 색상 레이블 수는 모릅니다. 잘라내기는 cut -c-50각 줄에 있는 이스케이프 문자(색상 레이블) 수에 따라 다양한 출력을 생성합니다.

요약하자면, 색상을 무시하고 고정된 너비로 텍스트를 잘라서 항상 50개의 색상 문자를 얻을 수 있습니까?

답변1

노력하다:

perl -pe 's/^((?:(?>(?:\e\[.*?m)*).){50}).*/$1\e[m/'

이는 ansi 유형 이스케이프 시퀀스로 간주됩니다.

\e[31m색상 설정 및 \e[m/또는 \e[0m재설정 과 같은 이스케이프 시퀀스가 ​​함께 제공됩니다 . 위에서는 \e[m각 줄의 끝에 추가하지만 입력에 따라 이것이 항상 이상적인 것은 아닙니다.

관련 정보