我的模式如下:
unix 文件中的模式:
{1.11.111.111 - 2017-10-06T00:00:00+00:00 111111 1 302 "GET/abcd/z1/bcdfgggg?values"uri="/abcd/v2/nano"111 111 0 "- ""abcd/2.1.0 (Linux; U; Android 8.1.0; Redmi Note 6 Pro MIUI/V10.2.2.0.bcdwvc)""1111:1111:111:1111:11:d11e:c11c:111a"cu =0.011 nano=0.011 var="-12345""1111:1111:111:1111:11:d11e:c11c:111a, 11.111.111.111"}
我正在尝试打印以下结果,但结果并未按预期打印。
代码:
猫测试.txt | awk -F'"' '{ print $1,$9}' |awk -F' ' '{ print $3,$6,$24}'
实际结果:2017-10-06T00:00:00+00:00 302
预期结果:2017-10-06T00:00:00+00:00 302 cu=0.011
最佳答案
使用 GNU sed 和带有三个反向引用的正则表达式:
sed -r 's/.* ([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9:+]{14}) [0-9]+ [0-9]+ ([0-9]{3}) .*(cu=[0-9.]+).*/\1 \2 \3/' file
输出:
2017-10-06T00:00:00+00:00 302 cu=0.011
关于linux - AWK 命令从提供的模式打印如下模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737124/