要监视日志文件,我使用以下命令: tail -f -n 1 myfile.log | perl -ne 'print if s/progress (\d+).*/$1%/g'
这将在我的终端中创建一个带有数字的行。我如何修改这个命令来覆盖最后一行?添加\r\033[K
并没有诀窍: tail -f -n 1 myfile.log | perl -ne 'print if s/progress (\d+).*/`\r\033[K$1%/g'
如何用尾部覆盖最后一行?
0
A
回答
4
当您在Perl中读取一行时,尾随的换行符不会被去除。此外,除非s
修饰符存在,否则正则表达式中的.
与新行字符不匹配。因此,在您的第二个片段中,\r
字符总是作为第一个字符打印出来,因此不起任何作用。
要修复它,下面可以做:
- 添加
s
修改的正则表达式来删除新行字符为好。 - 在打印字符串之前,打印一个
\r
字符以移至该行的第一个位置。 - 由于
STDOUT
是行缓冲的,因此每次打印内容时都需要将其更改为自动刷新。这可以通过将1
分配给$|
来完成。
最终代码:
perl -ne '$|=1; print if s/progress (\d+).*/\r$1%/s'
+0
不错!谢谢! –
相关问题
- 1. Writeline覆盖最后一行
- 2. DataTables - 水平滚动条部分覆盖最后一行
- 3. 尾巴如何跳过最后一行
- 4. 使用awk覆盖最后一行中的最后一个字段
- 5. 滚动条用VERTICAL_WRAP覆盖JList的最后一行
- 6. 我所有的代码都被最后一部分覆盖
- 7. 如何覆盖png的一部分?
- 8. 如何覆盖子类中的最后一个方法的javadoc?
- 9. 如何防止最后一个数字覆盖数组?
- 10. 最后一个,覆盖,常量与尾随返回类型的语法
- 11. java从文件中读取。最后一行覆盖列表
- 12. Slickgrid水平滚动条覆盖最后一行
- 13. usort覆盖阵列的头部还是尾部?
- 14. 在行尾找到最后一个值
- 15. 如何覆盖ActionLink行为
- 16. 如何覆盖Log4J行号
- 17. Django脆皮Formsets只使用最后一次迭代 - 覆盖最后的结果?
- 18. 用C中最后一个覆盖的数组元素
- 19. 使用覆盖评论表时,重定向到最后一页
- 20. 如何覆盖一个div
- 21. 显式覆盖和最后的C++ 0x
- 22. CSS中心div覆盖覆盖顶部
- 23. 如何用零覆盖文件行
- 24. cout:最后一个字符串覆盖第一个字符串
- 25. 如何删除尾部空白,然后是最后一个字符?
- 26. 如何最大化代码覆盖率?
- 27. 如何覆盖最小化控件?
- 28. 如何覆盖suhosin最大值?
- 29. eclipse:使'下'键走到行尾如果它的最后一行
- 30. 如何覆盖
什么是 “最后一行” 的意思是,如果你正在运行'尾巴-f'? – Sobrique
我的命令产生这样的输出:56(换行符)57(换行符)58(换行符)59 ...我只想看最后一个数字。在那种情况下59. –
是的。但'tail -f'继续运行,并且不发送'eof' - 所以'perl'不知道它是什么时候是“最后一行”,因为可能会有另一个。 – Sobrique