如何使用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”。
答案 0 :(得分:4)
正则表达式不是一个神奇的解析子弹。而不是尝试使用正则表达式进行解析,为什么不直接获得您想要的输出并阅读它?
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];
}
答案 1 :(得分:0)
您可以使用^\S+\s+(\S+)
或在\s+
上拆分,跳过第一行。