我有一个非常大的文本文件,我想查看第 2000 行到 2010 行(包括行号)
我知道一种到达那里的迂回方式:
sc -l [file]
cat -n [file] | tail -n [previous result - 2000] | head -n 10
Run Code Online (Sandbox Code Playgroud)
但感觉必须有更好的方法。在那儿?
我只是调用了这个命令ls -l | tail +3。首先,ls -s 生成 3 行,第一行添加管道条,然后在单独的行上打印每个文件名。它是如何做到的?这没有意义。
另外,我认为尾部文件名显示最后 10 行。+ (和减去)如何影响这个等式?
头也一样?它是如何工作的?
使用tail -F遵循可能尚不存在的文件,它可以跨截断,如下所示:
tail: cannot open `mylog.log' for reading: No such file or directory
tail: `mylog.log' has appeared; following end of new file
run1
run1
run1
tail: mylog.log: file truncated
run2
run2
run2
Run Code Online (Sandbox Code Playgroud)
我只想看到当前运行的输出,因为多个运行适合一个屏幕,很难分辨一个停止在哪里,下一个从哪里开始。在执行运行之前,我发现自己使用
rm mylog.log; clear && tail -F mylog.log
Run Code Online (Sandbox Code Playgroud)
但我必须记住在每次跑步之前都这样做。我意识到,如果tail在发生截断时清除屏幕,它将为我提供我想要的行为,而无需我进行任何交互。
在tail似乎手册页并没有表明这是可能的。我确定我不会是第一个想要这种行为的人,有没有其他人使用其他方式来实现它?
我通过 ssh 连接到远程机器并运行tail -f. 每次我使用触控板向上/向下滚动时,都会产生一些奇怪的字符,例如
OB^[OB^[OB^[OB^[OB^[OOB^[OB^[OB^[OB^[OB^[O
以前从未发生过这种情况,它不会让我向上滚动以查看以前的日志。为什么会发生这种情况,我该如何禁用它?