Skip to main content
 首页 » 编程设计

c#之使用 C# 正则表达式解析 Linux df 输出

2024年02月23日28lexus

如何使用 C# 正则表达式解析 df-Bk Linux 命令输出?

Filesystem           1K-blocks      Used Available Use% Mounted on 
/dev/sda1             7913216K  2348412K  5165992K  32% / 
varrun                 257788K      108K   257680K   1% /var/run 
varlock                257788K        0K   257788K   0% /var/lock 
udev                   257788K       56K   257732K   1% /dev 

我希望得到“1K-blocks”和“Used”。

请您参考如下方法:

正则表达式不是神奇的解析子弹。与其尝试使用正则表达式进行解析,不如更直接地获取您想要的输出并直接阅读它?

df -Bk| awk '{print $2, $3}' 

这将为您提供一组以空格分隔的字段。解析这成为调用 string.Split() 的问题

string[] output_lines; // presumably holds the output of df 
for (int i = 0; i < output_lines.Length; i++) 
{ 
    if (i == 0) 
        continue; 
 
    string[] b_u = output_lines[i].Split(" "); 
    string blocks = b_u[0]; 
    string used = b_u[1]; 
}