나는 종종 프로그램 출력을 적게 줄인다.
produce_output | less
이것은 produce_output
많은 양의 출력을 생성 할 때까지 훌륭하게 작동 합니다. 파일 깊이있는 텍스트를 검색하면 보고서가 줄어 듭니다.
Calculating line numbers... (interrupt to abort)
Control + C로 인터럽트 produce_output
하면을 종료하여 추가 출력을 생성하지 못하게합니다. 인터럽트를 덜 보내는 방법이 produce_output
있습니까? 그래서 계속 실행됩니까?
나는 사용할 수 있다는 것을 알고 kill -INT less_process
있지만 더 나은 해결책이 있어야한다고 생각합니다.
답변
일반적으로 파이프 라인의 모든 프로세스는 동일한 프로세스 그룹 에서 실행되므로 모든 프로세스 가 신호를 수신합니다. 다른 pgrp에서 setsid foo | less
실행할 수 있습니다 foo
.
답변
당신은 라인 번호를 비활성화 할 수 있습니다
-n or --line-numbers
선택권.
produce_output | less -n
답변
많은 양의 출력으로 작업 할 때 출력을 파일로 보내고 사용 tail -f
하거나 less +F
보는 것이 매우 도움이됩니다 .
produce_output > out 2>&1 & less +F out
2>&1
구문에 stdout 및 stderr를 모두 있는지 확인합니다 out
만 원하는 경우 제거 —이 표준 출력 파일에가는 것을. 이런 식으로 출력을 생성하는 프로그램을 망칠 필요없이 다양한 방법으로 (다른 기계에서도) 출력을 검사 할 수 있습니다.
참고 2>&1
될 수있다 Bash 전용 (나는 확실하지 않다). 출력 파일을위한 충분한 디스크 공간이 있는지 확인하십시오 🙂
답변
당신은 또한 이것을 할 수 있습니다 :
less +F -f <(produce_output)