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

标签 c# .net regex shell

如何使用 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];
}

关于c# - 使用 C# 正则表达式解析 Linux df 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6342848/

相关文章:

c# - 一种避免浪费内存的方法

c# - 检测诚实的网络爬虫

Javascript 匹配问题,非详尽无遗?

c# - EF 中的常量导致异常

python - 不在正则表达式中不起作用

regex - 在perl中对文本 block 进行排序

c# - Specflow测试步骤继承导致 "Ambiguous step definitions"

c# - 从另一个单选按钮的 "CheckedChanged"事件中取消选择其他单选按钮

.net - 用于 VS11 开发人员预览版的 MySQL 提供程序

c# - 让 XamlReader.Load 忽略未知的 xml 而不是崩溃?