我正在尝试编写一个脚本,它将遍历文本文件并检查特定内容并分配给变量。在
例如:
文本文件内容:
eth0 Link encap:Ethernet HWaddr 08:ee:27:ff:b3:d7
inet addr:10.0.2.45 Bcast:10.3.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe00:b3d7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16178 errors:0 dropped:0 overruns:0 frame:0
TX packets:8559 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14045795 (14.0 MB) TX bytes:1355632 (1.3 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:666 errors:0 dropped:0 overruns:0 frame:0
TX packets:666 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:72748 (72.7 KB) TX bytes:72748 (72.7 KB)
我想检查接口eth0上“RX packets”的值,并将值“16178”赋给变量。我需要能够从这个特定的块'eth0'提取这个值。在
请告知从哪里开始?在
谢谢。在
您可以使用正则表达式来提取值。在
尝试一种模式:
在正则表达式中,
\d
表示一个数字,+
表示一个或多个。你想“匹配”文本中的一个或多个数字。方括号的意思是捕捉到一个数字,这个数字应该在一个特定的文本RX packets:
之后找到。在您可以在official doc.中找到有关正则表达式的更多详细信息
你的代码应该是:
^{pr2}$输出:
^{3}$班切马克
输出:
NT:您可以优化它检查右块的方式。在
使用Regex可以很容易地完成,如图所示;
eth0.*?
指定应该提取膨胀到eth0的数据包,RX packets:
指定RX数据包后面的数字:需要提取,(\d)
将提取的数字分组。在相关问题 更多 >
编程相关推荐