我有下一个表达式,它可以很好地处理gawk:
sub(/-[0-9]{1,2}/, final_rssi, macs[$4]);它在数组中“-”之后替换1或2位数字,其中包含带有新数字的字符串。
类似-35分贝可替换为-5dB等。
但是我需要使用一些间隔期表达式,因为我限制了Busyboxv1.19.4中的awk版本,这相当于gawk -c。
在发明间隔表达式之前,任何关于人们是如何做到这一点的想法都将是很棒的。
发布于 2015-05-08 15:29:04
对于一个或两个数字匹配,您可以只使用/-[0-9][0-9]?/。
?表示零或一次出现。
测试一下:
$ gawk -c 'BEGIN{a="-35dB";sub(/-[0-9][0-9]?/,"-5",a);print a}'
-5dB发布于 2015-05-08 15:32:37
该命令在posix模式下工作,可以始终使用--posix进行尝试。
awk --posix '/-[0-9]{1,2}/' <<< '-12' # prints -12请注意,-c的意思是传统模式,这与1977年Brian的awk相同。我怀疑你是否真的想要,除了教育原因。
https://stackoverflow.com/questions/30127275
复制相似问题