在 less +F 中隐藏“等待数据...(中断中止)”

在 less +F 中隐藏“等待数据...(中断中止)”

少跑时+F文件名底部有一个“栏”,上面写着“等待数据...(中断中止)”。

有没有办法在保持跟随模式的同时隐藏此文本?

答案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

相关内容