less +F에서 "Waiting for data...(인터럽트 중단)"를 숨깁니다.

less +F에서 "Waiting for data...(인터럽트 중단)"를 숨깁니다.

더 적게 실행하는 경우 +F파일 이름하단에 "Waiting for data... (interrupt aborted)"라는 "막대"가 있습니다.

팔로우 모드를 유지하면서 이 텍스트를 숨길 수 있는 방법이 있나요?

답변1

문자열을 패치해 볼 수 있습니다.데이터를 기다리는 중...(인터럽트 중단)/usr/bin/less문자열을 찾을 수 있는 경우 바이너리 사본에서 . 예를 들어,

fgrep -abo 'Waiting for data... (interrupt to abort)' /usr/bin/less

문자열의 바이트 오프셋이 인쇄되어야 합니다. 그러나 less메시지가 두 부분으로 나누어져 있기 때문에 (내 버전에서는) 아무 것도 표시되지 않습니다 . 예를 들어 다음과 같이 작동합니다.

$ fgrep -abo 'Waiting for data' /usr/bin/less
125920:Waiting for data
$ fgrep -abo '... (interrupt to abort)' /usr/bin/less
163488:... (interrupt to abort)

따라서 2개의 문자열을 억제해야 합니다. (이것은 당신도 결코 볼 수 없다는 것을 의미합니다...(인터럽트 중단)다른 경우에는. )

프로그램이 일반적인 라이브러리 호출을 사용하여 문자열을 인쇄하는 경우 첫 번째 문자를 null로 대체하여 문자열을 억제할 수 있습니다. 예를 들어 다음 스크립트를 사용합니다.

cp /usr/bin/less myless
chmod +x myless
zap(){
 offset=$(fgrep -abo "$1" myless)      # eg 125920:Waiting for data
 offset=${offset%:*}              # remove :....
 printf '\x00'  |
 dd bs=1 count=1 status=none conv=notrunc seek="$offset" of=myless
}
zap 'Waiting for data'
zap '... (interrupt to abort)'
cmp -l /usr/bin/less myless       # check only 2 differences
./myless +F /var/log/messages

관련 정보