我有一个这样的字符串:
33 00 4b 46 ff ff 03 10 30 t=25562
我只对t=之后最后的五位数字感兴趣
我怎样才能用正则表达式得到这个数字呢?我试过grep t=.....
了,但我也得到了所有字符,包括开头的t=,我想放弃?
找到那个五位数后,我想将其除以1000
。所以在上面提到的情况下,数字25.562
。grep 和正则表达式可以做到这一点吗?
谢谢你的帮助。
使用awk
echo '33 00 4b 46 ff ff 03 10 30 t=25562' | awk -F= '{print $2/1000}'
输出:
25.562
编辑
正如@anubhava在评论中指出的那样,上述假设=
在之前的任何地方都不存在t=
。如果不是这样的话,
echo '33 00 4b 46 ff ff 03 10 30 t=25562' | awk -F' t=' '{print $2/1000}'
这应该没问题。它只会t=
在最后获得价值形式。OP 还发布了t=
可能作为额外字符存在于行中间的内容,但您好只希望获得行尾的那个。
echo '33 00 4b 46 ff ff t=22 03 10 30 t=25562' | awk '{split($NF,a,"=");print a[2]/1000}'
25.562
另一种变化
echo '33 00 4b 46 ff ff t=22 03 10 30 t=25562' | awk 'END {print $0/1000}' RS==
25.562