awk提取nginx日志相应字段

需要对客户端的每篇文章的访问设备进行统计,但是在统计安卓设备的时候,少部分安卓设备的deviceid和contentid在nginx日志其他大部分的日志并不一致位置不一一致,无法通过简单的awk -F来提取。
124.160.214.171 - - [27/Jul/2022:08:12:56 +0800] "GET /v2/poster?clientid=1&device_id=b109f053-e6b5-44e4-b9fe-91dd07006cd3&app_version=5.2.3&ip=100.100.100.100&system_name=android&contentid=2952874&sign=b641bdcd80a1e83ad6f020558dbe30ea&areas=%E6%B5%99%E6%B1%9F%E7%9C%81,%E7%BB%8D%E5%85%B4%E5%B8%82,%E8%B6%8A%E5%9F%8E%E5%8C%BA&type=android&modules=article:1&is_ciphertext=1&sharesiteid=10001&siteid=10001&time=1658880777526 HTTP/1.1" 200 814 "-" "okhttp/3.8.1" - "0.001"

具体提取命令如下,能提取所有的contentid和device_id

cat nginx.log|grep 'v2/poster'|grep 'android'|grep -E '2952738'|awk 'BEGIN{FS="&"}{for(i=1;i<=NF;i++){if($i ~ /device_id=|contentid=/)l=l$i;}print l;l=""}'|awk -F 'device_id=|contentid=' '{print $3,$2}'|sort |uniq >> article.text
提取结果如下:
2952738 D1E4A69E-1BE4-4271-901B-0ACA4019E02C
2952738 D20FEA64-016E-4FB1-9FE8-05B9C664F8AD
2952738 D222C178-84E2-4127-8751-A8C8FC0AEF36
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值