使用 awk 获取数组中参数的值



journalctl -b 向我展示了这样的日志:

something something somethng
aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444
something something somethng

如何获取参数"ccc"的值?

例如:

journalctl -b | awk '/ccc:/{print $1}'

显示了第一个单词,但我需要在"ccc"之后获得第一个单词:

0x00000333

使用sed

$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|sed 's/.*ccc: ([^ ]*).*/1/g'
0x00000333

如果您真的想使用awk

$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|awk '/ccc:/{s=$0; gsub(".*ccc: ", "", s); gsub(" .*$", "", s); print s}'
0x00000333

如果键ccc,此行将为您提供值:

journalctl -b|grep -oP 'ccc: K[^ :]*'

例如

kent$  grep -oP 'ccc: K[^: ]*'<<<"aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: adfa"
0x00000333

相关内容

  • 没有找到相关文章

最新更新