bash - 如何在tail -f上找到键的值

标签 bash shell ubuntu sed grep

我的日志文件是键值格式。我想在 tail -f 上找到特定键的值 ..
假设日志中的一行是:

ts=2016-12-23-18-31-34-849 | deviceType=LENOVO Lenovo A6000 | elapsed=11 | firstHomePage=null | installId=37797b61-0bb1-4c1a-844c-5904c7e83de8 | ip=157.48.104.146 
ts=2016-12-23-18-31-34-849 | deviceType=LENOVO Lenovo A6000 | elapsed=15 | firstHomePage=null | installId=37797b61-0bb1-4c1a-844c-5904c7e83de8 | ip=157.48.104.146 

我不确定如何通过管道输出 tail -f 以便输出应遵循
11
15

最佳答案

使用GNU grep--line-buffered缓冲命令 stdout因为它在文件不断增长的情况下到达。 -o仅匹配模式和 -P 的标志启用 perl款式 regEx捕获。

tail -f file | grep --line-buffered -oP "elapsed=\K(\d+)"
11
15

来自 man grep页,
--line-buffered
         Use line buffering on output.

关于bash - 如何在tail -f上找到键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302028/

相关文章:

linux - 解析日志并打印 csv 文件中的某些字段

bash - Git (GitHub) 在过去的日期提交

java - 如何实现java应用程序和shell脚本之间的同步?

linux - 如何编写 Linux 脚本以从单个可执行文件运行多个文件?

ubuntu - 尝试编译 'make' 自定义配置 vim 将不起作用

bash - find 命令中的 %p 和 %P 有什么区别

bash - 在 bash 脚本中使用 .env 属性

linux - 将多个shell脚本集成到一个脚本中

ubuntu - Minicom 什么都不显示

python - Django [Errno 13] 权限被拒绝 : '/var/www/media/animals/user_uploads'