首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >,只打印与正则表达式匹配的模式。

,只打印与正则表达式匹配的模式。
EN

Stack Overflow用户
提问于 2019-12-06 17:33:24
回答 1查看 214关注 0票数 2
  • 例如,我有一个字符串:
代码语言:javascript
复制
 10.1.2.194 (197.84.211.148) - - [08/Oct/2015:09:01:44 +0000] "GET /merlin-web-za/web/images/refinements/loader.gif HTTP/1.1" 200 4178 0 1868 "http://www.autotrader.co.za/makemodel/make/chevrolet/model/aveo/caryearrangeszar/2012/search?sort=PriceAsc&locationName=Cape%20Town&latitude=-33.92584&longitude=18.42322&county=Western%20Cape" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" "ajp://10.1.4.66:8009"

我需要在以下几个方面修改:

代码语言:javascript
复制
08/Oct/2015:09:01:44 GET /merlin-web-za/web/images/refinements/loader

我如何使用awk或egrep进行操作?-我尝试了下面的命令,但是第一个命令的结果显示了包含这两种模式的完整字符串。

代码语言:javascript
复制
awk ' /08/Oct/2015:09:[0-9]{2}:[0-9]{1,2}/ && /GET (/[a-z0-9-]{1,}){1,3}/'

代码语言:javascript
复制
cat file | egrep -o "08/Oct/2015:09:[0-9]{2}:[0-9]{1,}.* GET (/[a-z0-9-]{1,}){1,}"

这填补了上述模式之间的空白,因此我可以看到:

代码语言:javascript
复制
08/Oct/2015:09:01:44 +0000] "GET /merlin-web-za/web/images/refinements/loader

这不是我想要的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 17:48:37

你可以用

代码语言:javascript
复制
awk '{a=$5" "$7" "$8; gsub(/[]["]|\.[^.]*$/, "", a); print a}'

在线演示

详细信息

默认的字段分隔符--空白--用于将行拆分为字段。

  • a=$5" "$7" "$8; -通过使用空格将字段5、7和8连接起来创建一个变量
  • gsub(/[]["]|\.[^.]*$/, "", a) -删除字符串末尾的[]"以及. +除.以外的任何0+字符
  • print a -打印结果。

但是,您发送给我的文件在第一个括号中包含comma+space分隔的IP地址。你可以用

代码语言:javascript
复制
sed -E -n 's/^[^][]*\[([^][[:space:]]+)[^][]*\][ \t]+"([[:alpha:]]+[ \t]+[^[:space:]]+).*/\1 \2/p' access_log > newfile

要获得您想要的结果,即time + Get/post +URL

详细信息

  • ^ -匹配字符串的开始
  • [^][]* -除[]以外的任何0或多个字符
  • \[ -a [ char
  • ([^][[:space:]]+) -第1组:][和空格以外的1+字符
  • [^][]* -除[]以外的任何0或多个字符
  • \] -a ] char
  • [ \t]+ - 1+水平空格图
  • " -a " char
  • ([[:alpha:]]+[ \t]+[^[:space:]]+) -第2组: 1+字母,1+水平空格,然后是1+字符,而不是空格
  • .* -剩下的字符串.

结果是第1组和第2组值的串联。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59217849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档