簡體   English   中英

在“傳統” awk(例如nawk)而不是區間表達式中使用什么?

[英]What to use in “traditional” awks (e.g. nawk) instead of interval expressions?

我有下一個表達式可以與gawk配合使用:

sub(/-[0-9]{1,2}/, final_rssi, macs[$4]);

它在包含帶有新數字的字符串的數組中的“-”之后替換1或2位數字。

像-35dB可以用-5dB等代替

但是我需要使用一些間隔表達式來代替,因為我已經限制了Busybox v1.19.4中的awk版本,它等同於gawk -c

在發明間隔表達式之前,人們如何做的任何想法都很棒。

對於一個數字的一​​兩個匹配項,您只需使用/-[0-9][0-9]?/

? 表示零或一出現

測試一下:

$ gawk -c 'BEGIN{a="-35dB";sub(/-[0-9][0-9]?/,"-5",a);print a}'
-5dB

該命令確實可以在posix模式下運行 ,您始終可以使用--posix嘗試:

awk --posix '/-[0-9]{1,2}/' <<< '-12' # prints -12

請注意, -c表示傳統模式,該模式與Brian Kerningham於1977年提出的awk相同。我出於懷疑,除非出於教育原因,否則您是否真的想要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM