要監視日誌文件,我使用以下命令: 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