적은 방해로 적은 방해 줄어 듭니다. Calculating line

나는 종종 프로그램 출력을 적게 줄인다.

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)


답변