linux命令行这行SNMPv2-SMIenterprises3504721160 = STRING eth0 upload427KBsdownload1017KBs; eth2 upload8816KBsdownload825KBs我只要etho的upload括号里面的数字麻烦帮我过滤一下
可以使用grep和sed命令来过滤出etho的upload括号里面的数字。下面是一个可能的解决办法:
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 -o 'eth0: upload([^)]*)' | sed 's/eth0: upload(\([^)]*\))/\1/'
这个命令会输出42.7KB/s,这是etho的upload括号里面的数字。
解释一下这个命令:
grep -o 'eth0: upload([^)]*)'会匹配包含eth0: upload(开头,紧接着是任意字符但不包括)的字符串,并输出匹配结果。这个命令会输出eth0: upload(42.7KB/s)。sed 's/eth0: upload(\([^)]*\))/\1/'会匹配eth0: upload(开头,紧接着是任意字符但不包括)的字符串,并提取括号里面的内容,然后输出提取的内容。这个命令会输出42.7KB/s。
你可以将你要过滤的字符串替换成上面的命令,然后在命令行中执行
原文地址: https://www.cveoy.top/t/topic/ivJO 著作权归作者所有。请勿转载和采集!