在Enter处添加尾部行为会减少空白行


8

我喜欢less,我可以使用它跟随带有+F标志(或ShiftF热键)的日志,前后搜索以及通常在文档中自由移动。

但是缺少一件事less:通常我在文件末尾,并且我想看到新的事情正在发生。在这里,tail -f我会打enter几下,而新的日志行会与旧的行明显分开。

是否可以将其添加到less?怎么样?


我不认为您可以执行此操作,尽管有时我会执行echo -e'\ n \ n \ n \ n \ n'>> / dev / pts / 0,例如,它不是很干净,但是至少我有一个参考点,当我看着别处时,我会停下来。
David Houde13年

Answers:


6

这实际上不是tail行为,而是终端。Tail只是将输出流发送到stdout,该输出流将发送到您的终端,并且您通过按Enter在该输出的中间插入空白行。尾巴实际上根本不接受您的输入。您可以键入其他任何内容,该内容也会显示出来。

less但是,它是一个控制台应用程序,需要输入并进行处理。它使用终端控制序列来管理控制台,这是您可以滚动的方式。让您在流中插入任意字符将使显示混乱,并且无论如何,很少使用您的输入来控制程序。

不幸的是,它似乎没有办法在视觉上标记当前位置。但是,这并不是一个可怕的功能请求,并且很少不时地获得新功能。


您手边有一个链接,可以要求较少的维护者使用此功能?
blueFast 2013年


4

我在为自己寻找相同答案时找到了您的问题。

对于可接受的答案感到失望,我想出了一种解决方法。它不理想,但是它允许我在要跟踪的日志中标记我的位置less,这很重要。

我创建了一个marklog包含以下内容的小型可执行脚本(称为),并将其放在我的路径中:

#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1

当然,这仅在您具有对日志文件的写访问权时才有效-在许多情况下这可能会破坏交易。我还创建了这个版本,用于写入我不拥有的日志文件(但是我拥有sudo访问权限):

#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"

这些脚本提供了我一直在寻找的视觉中断。至少有3种使用方式:

  1. 在使用时,通常会按几次Enter键tail -f,而不是marklog从另一个终端运行(提供日志文件的路径作为参数)。

  2. 使用CtrlZ暂停less,您可以在同一终端窗口中运行脚本,但是当您重新前景lessfg当然使用)时,它将不再处于“跟随”模式,因此您需要ShiftF再次点击...

  3. 最后-这可能是最方便的方法,因为您无需键入日志文件的路径:通过键入marklog直接运行。会将当前文件名替换为。但是,不会响应!当它处于“跟随”模式时,因此您必须先打一下才能退出跟随模式,运行,然后再次。less!marklog %Less%lessCtrlC!marklog %ShiftF

使用方法3,您还将获得Less的命令历史记录的额外好处:只需按一下!,然后使用向上箭头选择最近的命令(对我来说,它始终是marklog)。

希望这能对某人有所帮助。


1

在文件末尾按Shift+键F,少按将开始工作tail -f


2
不,不会。它将遵循新的要求,但不能用作tail -f。具体来说,它将不会接受enter作为换行符,这是我的问题的 唯一要点。此外,我已经Shift+F在问题中提到了(我必须说一个小错误)
blueFast 2013年

1

我认为您无法做到这一点。我已经使用过m'标记了感兴趣的地方,然后再次转到它们,但这并不能使您获得所要求的分隔。也许像multitail这样的东西会做你想要的。


-1

Lambart的回答将我带到了我最喜欢的解决方案。谢谢兰伯特!

只需插入跟随模式ctrlc并输入!printf "\n\n---$(date)---\n\n" >> %。之后,您必须再按enter一次,然后单击shiftf以重新开始跟随文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.