반복 표시가 있는 루프의 출력을 볼 수 있는 "watch"와 같은 도구가 있습니까?

반복 표시가 있는 루프의 출력을 볼 수 있는 "watch"와 같은 도구가 있습니까?

이런 일이 몇 번 일어나는 것 같습니다. 이런 사이클을 반복하면서 로그의 차이점을 찾아보도록 하겠습니다. 예를 들어:

start
1
2
3
end
start
1
2
4
3
end

터미널 출력 페이지를 스크롤하는 대신 로그에 구조를 지정하세요. 이 도구는 watch특정 간격으로 명령을 실행하고 변경 사항을 강조 표시하는 기능도 사용할 수 있습니다 -d. 프로그램의 출력을 시작/끝 사이의 덩어리로 분할하는 쉬운 방법이 있습니까?

주기 내 고정된 선에서 실시간으로 변경 사항을 확인하여 변경 사항을 확인할 수 있으면 좋을 것 같습니다. 주기를 스크롤할 수 있는 것도 좋습니다.

답변1

이 기간 동안 나는 몇 가지 작은 글을 썼습니다. 좋지는 않지만 작업이 완료됩니다.

https://github.com/pknowles/watch_cycles

cat log.txt | ./watch_cycles "start"

예를 들면 다음과 같습니다.

page 2/2
start
1
2
4
3
end

화살표 키는 이전 페이지로 스크롤합니다.

답변2

새로운 유틸리티pw(파이프라인 감시)바로 이 목적을 위한 기능이 있습니다.

tail -f log.txt | pw

pw데이터는 내부 FIFO 버퍼를 통해 펌핑되며, 여기에서 스냅샷이 촬영되고 표시되며 CtrlP위쪽/아래쪽 화살표 키 또는 및 를 사용하여 쉽게 액세스 할 수 있는 20화면 깊이의 스냅샷 기록으로 푸시됩니다 CtrlN.

기본적으로 스냅샷은 10초마다 또는 1초의 읽기 시간 초과가 있을 때마다 생성되지만 이러한 시간 초과는 조정할 수 있습니다.

이것방아쇠기능은 반복 패턴의 일정한 부분을 화면에서 정지시킵니다. 데모 비디오에서 이를 확인할 수 있습니다.

그러나 pwVi 검색과 ​​유사한 명령을 사용하여 쉽게 트리거 모드로 들어갈 수 있습니다: /pattern?pattern. 트리거 모드에서는 FIFO의 하나 이상의 행과 일치하는 항목이 발생할 때마다 디스플레이가 업데이트됩니다. 아직 할 일이 많습니다.

아래와 같이 프로그램을 시작하기 전에 트리거를 지정할 수 있습니다.

# trigger: match foo on line 1, bar on line 3
pw -e /foo -e 3/bar

트리거 및 기타 설정을 원하는 방식으로 설정한 경우 세션 저장 :s filename및 호출을 사용할 수 있습니다 pw -f filename. 세션에는 필터 및 트리거는 물론 수직 분할 구성과 같은 디스플레이 설정도 있습니다. 파일에는 쉽게 편집하고 조정할 수 있는 /, ?및 (콜론) 명령만 포함되어 있습니다.:

관련 정보