我正在尝试寻找一个Unix命令(可能是组合命令)来说明如何连续显示文件的最后几行内容。但在此显示期间,当滚动内容到达屏幕顶部时,我希望一些顶部行始终显示在屏幕顶部。
这有可能吗?
(1)假设我有一个文件,"job.sta",前两行是:工作名称,John在2013-Jan-30的工作,...Tab1,Tab2,Tab3 0,1,2,1,90,89 2,89,23...
(2)这个文件正在运行,它的内容正在增长,我不知道它将结束于哪一行。
(3)所以当更新内容到达Unix shell屏幕顶部时,我希望在使用tail命令时显示(总是)前2行。我现在正在使用PuTTY。
参考:http://www.unix.com/unix-dummies-questions-answers/172000-head-tail-how-display-middle-lines.html
发布于 2013-01-31 02:11:49
这将每2秒更新一次,而不是每次将数据写入文件时进行更新,但这可能就足够了:
watch 'head -n 2 job.sta; tail job.sta'发布于 2014-03-27 08:41:48
我一直使用这个函数来监视另一个终端窗口中的日志文件。
tail -f <filename>我建议前进一步,在日志中查找特定的文本。如果你只想看到一些特定的条目被写到文件中,那就太棒了。
tail -f <filename> | grep <keyword or pattern>发布于 2013-01-30 21:01:11
我使用这个脚本来达到你所描述的效果
!#/bin/bash
while [ 1 ]; do ls -lt data | head -n 30; sleep 3; echo -en "$(tput cuu 30; tput ed)"; done这将在循环中运行命令,并在每次迭代之前从屏幕中删除输出的最后一行。
在您的例子中,它看起来像这样
!#/bin/bash
while [ 1 ] ;# loop forever
do
head -n 2 job.sta ;# display first 2 lines
tail -n 30 job.sta ;# display last 30 lines from file
sleep 3 ;# wait a bit
echo -en "$(tput cuu 32; tput ed)" ;# delete last 32 lines from screen
done当然,在您的文件达到30行之前,它有点难看
希望这能有所帮助
https://stackoverflow.com/questions/14604397
复制相似问题