首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在“传统”nawk(例如nawk)中使用什么来代替间隔表达式?

在“传统”nawk(例如nawk)中使用什么来代替间隔表达式?
EN

Stack Overflow用户
提问于 2015-05-08 15:17:11
回答 2查看 113关注 0票数 1

我有下一个表达式,它可以很好地处理gawk:

代码语言:javascript
复制
sub(/-[0-9]{1,2}/, final_rssi, macs[$4]);

它在数组中“-”之后替换1或2位数字,其中包含带有新数字的字符串。

类似-35分贝可替换为-5dB等。

但是我需要使用一些间隔期表达式,因为我限制了Busyboxv1.19.4中的awk版本,这相当于gawk -c。

在发明间隔表达式之前,任何关于人们是如何做到这一点的想法都将是很棒的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-08 15:29:04

对于一个或两个数字匹配,您可以只使用/-[0-9][0-9]?/

?表示零或一次出现。

测试一下:

代码语言:javascript
复制
$ gawk -c 'BEGIN{a="-35dB";sub(/-[0-9][0-9]?/,"-5",a);print a}'
-5dB
票数 4
EN

Stack Overflow用户

发布于 2015-05-08 15:32:37

该命令在posix模式下工作,可以始终使用--posix进行尝试。

代码语言:javascript
复制
awk --posix '/-[0-9]{1,2}/' <<< '-12' # prints -12

请注意,-c的意思是传统模式,这与1977年Brian的awk相同。我怀疑你是否真的想要,除了教育原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30127275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档