我的模式如下:
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"}
我正在尝试打印以下结果,但结果未按预期打印。
代码:
Cat test.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
答案 0 :(得分:2)
使用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
答案 1 :(得分:2)
假设日志条目总是 由OP呈现:
test_target
输出:def abc():
a = some_other_function()
b = some_other_functipn_2(a)
test_target(b)