可以使用grep命令来实现过滤,具体命令如下:

echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(42.7KB/s),download(101.7KB/s); eth2: upload(881.6KB/s),download(825KB/s)"' | grep -oP 'eth0: upload\(\K[0-9.]+[KM](?=[A-Z])'

解释一下命令的各个部分:

  • echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(42.7KB/s),download(101.7KB/s); eth2: upload(881.6KB/s),download(825KB/s)"':将需要过滤的字符串通过管道传递给下一个命令。
  • grep -oP 'eth0: upload\(\K[0-9.]+[KM](?=[A-Z])':使用grep命令进行过滤。
    • -o选项表示只输出匹配的部分。
    • -P选项表示使用Perl正则表达式。
    • 'eth0: upload\(\K[0-9.]+[KM](?=[A-Z])':正则表达式模式,匹配以"eth0: upload("开头,后跟数字和点号组成的字符串,最后是K或M,并且后面紧跟一个大写字母(用来排除download部分)。

运行以上命令,输出结果为:

42.7KB

即为过滤出的eth0的upload括号里面的K或者M

linux命令行这行SNMPv2-SMIenterprises3504721160 = STRING eth0 upload427KBsdownload1017KBs; eth2 upload8816KBsdownload825KBs过滤出eth0的upload括号里面的K或者M因为可能出现K或者M

原文地址: https://www.cveoy.top/t/topic/ivJ0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录