grep할 때 결과가 한 화면에 맞지 않을 때 호출기 모드로 들어가면 어떻게 될까요?

1550 단어 grepackbash
GNU 셸 명령에는 프로그램이 ANSI 색상 출력을 전달할 수 있는 경우 대화형 셸에서만 또는 명시적으로 지시된 경우에만 수행한다는 일반적인 주제가 있습니다. 출력을 파이프하고 싶지만 나중에 인쇄할 수 있도록 색상이 남아 있는 경우 전송 및 수신 명령을 모두 보강해야 하는 경우가 있습니다.
grep에 대한 많은 대안 중에서 ack 를 사용합니다.

다음이 주어지면 ~/.ackrc,

--flush
--pager
less -R -F


내가 ack 뭔가를 할 때마다 less를 호출기로 사용하고 검색 결과가 화면에 맞으면 색상을 포함하여 인쇄하고 그렇지 않으면 less '인터랙티브 모드로 들어갑니다.

다음은 ack 매개변수에 대한 설명입니다.
  • 매개변수--flushack에 "즉시 출력을 플러시합니다. ack가 대화식으로 실행되지 않는 한(출력이 파이프나 파일로 가는 경우) 기본적으로 꺼져 있습니다."라고 지시합니다. 따라서 --flush 를 사용하면 출력이 항상 즉시 전송됩니다.
  • 매개변수 --pagerack를 통해 출력을 파이프less -R -F하도록 지시합니다. 이는 ack ... | less -R -F 를 입력할 때 항상 실행ack ... 하는 것과 같습니다.

  • 다음은 less 매개변수에 대한 설명입니다.
  • -R ( --RAW-CONTROL-CHARS ) ANSI 색상 이스케이프 시퀀스를 인쇄합니다. 이는 ESC[1;39m 코드가 아닌 컬러 출력을 의미합니다.
  • -F ( --quit-if-one-screen ) "전체 파일을 첫 번째 화면에 표시할 수 있는 경우 자동으로 덜 종료됩니다."

  • 내가 지금까지 경험한 한 가지 단점은 화면 공간을 많이 차지하지 않는 매우 적은 결과로 매우 느린ack을 수행하면 ack가 완료되거나 완료될 때까지 해당 결과를 얻지 못한다는 것입니다. 결국 전체 화면을 사용하기 때문에 직접 인쇄하는 것보다 호출기를 활성화하는 방법을 알고 있기 때문입니다.
    less -X ( --no-init ) "termcap 초기화 ​​및 초기화 해제 문자열을 터미널로 보내는 것을 비활성화"하여 이 마지막 단점을 우회할 수 있습니다.

    어떤 단점이 덜 마음에 드는지 결정하거나 세 번째 옵션을 알려주세요!

    좋은 웹페이지 즐겨찾기