linux - AWK 命令从提供的模式打印如下模式

标签 linux bash unix awk

我的模式如下:

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

参见:The Stack Overflow Regular Expressions FAQ

关于linux - AWK 命令从提供的模式打印如下模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737124/

相关文章:

c - 杀死运行系统 shell 命令的子进程

c++ - 许多 XSetInputFocus 和 XSync 导致错误

python - 我怎样才能摆脱这个 bash 命令后创建的新行?

python - 激活python虚拟环境如何修改sys.path?

bash - 在没有 curl 的情况下在 Bash 中使用 API

unix 命令行使用 . (点)与没有

c - 未初始化信号量的值

linux - 无法在 Parrot Linux 上安装 strace

linux - SystemOut.log 文件字符串搜索、计数并在计数达到 10 时通过电子邮件发出警报

php - 执行 PHP 程序的 Cron 作业