使用 awk 获取数组中参数的值
Use awk to get value of the parameter in the array
journalctl -b 向我展示了这样的日志:
something something somethng
aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444
something something somethng
如何获取参数'ccc'的值?
例如:
journalctl -b | awk '/ccc:/{print }'
显示了第一个词,但我需要在 'ccc' 之后获取第一个词:
0x00000333
使用sed
:
$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|sed 's/.*ccc: \([^ ]*\).*//g'
0x00000333
如果你真的想用awk
:
$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|awk '/ccc:/{s=[=11=]; 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
journalctl -b 向我展示了这样的日志:
something something somethng
aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444
something something somethng
如何获取参数'ccc'的值?
例如:
journalctl -b | awk '/ccc:/{print }'
显示了第一个词,但我需要在 'ccc' 之后获取第一个词:
0x00000333
使用sed
:
$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|sed 's/.*ccc: \([^ ]*\).*//g'
0x00000333
如果你真的想用awk
:
$ echo "aaa: 0x00000111 bbb: 0x00000222 ccc: 0x00000333 ddd: 0x00000444"|awk '/ccc:/{s=[=11=]; 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