ESC 이스케이프 문자를 얻지 않고 스크립트에서 less를 어떻게 사용할 수 있습니까?

ESC 이스케이프 문자를 얻지 않고 스크립트에서 less를 어떻게 사용할 수 있습니까?

명령줄에서 사용 하면 less출력은 다음과 같습니다. 여기에 이미지 설명을 입력하세요.

그러나 lessbash 스크립트에서 사용하면 다음과 같은 결과를 얻습니다. <code>[![여기에 이미지 설명 입력][1]][1]</code>

less모든 이스케이프 문자를 가져오지 않고 bash 스크립트에서 이것을 사용하고 대화형 명령줄에서처럼 작동하게 하려면 어떻게 해야 합니까 ?

답변1

-R플래그 사용 :

-r 또는 --raw-control-chars

"원시" 제어 문자가 표시됩니다. 기본값은 캐럿을 사용하여 제어 문자를 표시하는 것입니다. 예를 들어 control-A(8진수 001)는 "^A"로 표시됩니다. 경고: -r 옵션을 사용할 때 less는 화면이 실제로 어떻게 보이는지 추적할 수 없습니다(이는 화면이 각 제어 문자 유형에 어떻게 반응하는지에 따라 다르기 때문입니다). 결과적으로 긴 줄이 잘못된 위치에서 분할되는 등 다양한 표시 문제가 발생할 수 있습니다.

-R 또는 --RAW-Control-CHARS

-r과 유사하지만 "원시" 형식의 ANSI "색상" 이스케이프 시퀀스만 출력합니다. -r과 달리 대부분의 경우 화면 모양이 올바르게 유지됩니다. ANSI "색상" 이스케이프 시퀀스는 다음 형식의 시퀀스입니다.

           ESC [ ... m

여기서 "..."는 0개 이상의 색상 지정 문자입니다. 화면 모양을 추적하기 위해 ANSI 색상 이스케이프 시퀀스는 커서를 이동하지 않는 것으로 가정됩니다. 환경 변수 LESSANSIENDCHARS를 색상 이스케이프 시퀀스를 끝낼 수 있는 문자 목록으로 설정하여 "m" 이외의 문자가 ANSI 색상 이스케이프 시퀀스를 끝낼 수 있는 상황 수를 줄일 수 있습니다. 환경 변수 LESSANSIMIDCHARS를 나타날 수 있는 문자 목록으로 설정하여 표준 문자 이외의 문자가 ESC와 m 사이에 나타날 가능성을 줄일 수 있습니다.

less매뉴얼 페이지 에서 .

관련 정보