linux - Tails -f 使用多个管道对数据进行排序
问题描述
我有几行数据,如下所示:
255.255.255.255 - - [dd/mm/yyyy hh:mm:ss] "GET /index.html?parameter1=valueN HTTP/1.1" 200 -
255.255.255.255 - - [dd/mm/yyyy hh:mm:ss] "GET /index.html?parameter2=valueN HTTP/1.1" 200 -
但是我只想显示该行的这一部分:
parameter=value
但它必须通过与此类似的命令来完成,因为我需要 tails 可以提供的持续输出:
tails -f <file.log> | whatever
我可以删除该行的第一部分和最后一部分,但我无法弄清楚如何在一行中实现这一点。我有以下脚本可以随心所欲,但它只适用于 cat,而不适用于 tails:
cat file.log | cut -d'?' -f2 | sed 's/ HTTP\/1\.1\" 200 \-/ /g' | grep -E "parameter1|parameter2"
结果是:
parameter1=valueN
parameter2=valueN
我还尝试了其他几个带有 cut、tr 和 grep 的命令,这让我更接近我想要的,但仍然与我上面显示的不匹配。我该怎么办?
解决方案
谢谢@shellter!
以下命令解决了我的问题:
tail -f file.log | sed 's/^.*[?]//;s/ .*$//;s/[0-9]//g'
但是现在,只要有与表达式不匹配的输出,我就会得到“...”,我宁愿什么也不打印。还有非 unicode 字符的问题,我将进一步研究。谢谢!
推荐阅读
- typescript - 创建反应应用程序在打字稿错误时无法编译
- snowflake-cloud-data-platform - 雪花 - 桌子
命令 - java - 有没有办法在springboot中创建一个webfilter,通过检查有效负载中的条件来在http头中添加一条消息?
- java - Java - 随机图像制作器/嵌入打印机
- r - 如何在 R 中断时自动重新连接到 websocket?
- android - Zahid-Ali-Shah SignatureView 不再工作了?
- asp.net-mvc - 视图中的 ASP.NET MVC 错误
- javascript - 从 JavaScript 段落中提取/匹配特定单词
- javascript - mailgun.js 内嵌图片附件
- c - 矩形的底边在 SDL2 中不是直的