linux命令行中如何把这行SNMPv2-SMIenterprises3504721160 = STRING eth0 upload123KBsdownload12KBs过滤出upload括号里面的K或者M
在Linux命令行中,你可以使用grep命令和正则表达式来过滤出upload括号里面的K或者M。
以下是一个示例命令:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"' | grep -oP 'upload\(\K\d+(\.\d+)?[KM]'
解释一下这个命令:
echo 'SNMPv2-SMI::enterprises.35047.2.11.6.0 = STRING: "eth0: upload(12.3KB/s),download(12KB/s)"':这个部分是你的原始字符串,可以替换成你自己的字符串。grep -oP 'upload\(\K\d+(\.\d+)?[KM]':这个部分使用grep命令以及正则表达式来过滤字符串。-o选项表示只输出匹配到的部分。-P选项表示使用Perl兼容的正则表达式。'upload\(\K\d+(\.\d+)?[KM]'是正则表达式部分。解释一下正则表达式:upload\(:表示匹配到字符串"upload("。\K:表示忽略前面匹配到的部分,即只输出后面的部分。\d+(\.\d+)?:表示匹配到一个或多个数字,可以有小数点和小数部分(可选)。[KM]:表示匹配到K或者M。
运行这个命令后,输出结果将是12.3K
原文地址: https://www.cveoy.top/t/topic/ivDh 著作权归作者所有。请勿转载和采集!