Разбирать вывод Linux df с помощью регулярных выражений C # - PullRequest
1 голос
/ 14 июня 2011

Как мне разобрать вывод команды df-Bk Linux с регулярными выражениями C #?

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-блоки" и "Б" ".

Ответы [ 2 ]

4 голосов
/ 15 июня 2011

регулярное выражение не волшебная пуля разбора.Вместо того, чтобы пытаться выполнить синтаксический анализ с помощью регулярных выражений, почему бы не получить нужный вывод более просто и просто прочитать его?

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];
}
0 голосов
/ 14 июня 2011

Вы можете использовать ^\S+\s+(\S+) или разделить на \s+, пропустив первую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...