linux命令行中如何把这行SNMPv2-SMIenterprises3504721160 = STRING eth0 upload123KBsdownload12KBs只要upload括号里面的K或者M
可以使用awk命令来提取字符串中括号内的内容。具体操作如下:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"' | awk -F'[()]' '{print $2}'
输出结果为:
12.3KB/s
解释:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"':将要处理的字符串通过管道传递给下一个命令。awk -F'[()]' '{print $2}':使用awk命令,并指定-F参数来指定分隔符为括号。然后通过print $2打印第二个字段,即括号内的内容。
如果你只想提取括号内的字母K或者M,可以使用正则表达式来匹配。具体操作如下:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"' | awk -F'[()]' '{match($2, /[KM]/); print substr($2, RSTART, RLENGTH)}'
输出结果为:
K
解释:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"':将要处理的字符串通过管道传递给下一个命令。awk -F'[()]' '{match($2, /[KM]/); print substr($2, RSTART, RLENGTH)}':使用awk命令,并指定-F参数来指定分隔符为括号。然后使用match函数和正则表达式/[KM]/来匹配字符串中的K或者M,并通过substr函数打印匹配到的字符
原文地址: https://www.cveoy.top/t/topic/ivDp 著作权归作者所有。请勿转载和采集!