如何忽略awk中的案例?

时间:2014-10-30 09:00:34

标签: parsing awk

您好我正在尝试让我的awk脚本忽略输入文件中包含rw=none的所有行,但所有其他rw=*仍应匹配。

我已尝试使用此代码,但它没有用,因为如果字符串匹配,我不会忽略整行

我的尝试:

match($0,/(rw=[^,]*)/){
    !/rw=none/
    n=split(substr($0,RSTART+3,RLENGTH-3),N,/:/)
    for(i=1; i<=n; i++)print '$NETAPP_ID', vFiler, $1, N[i];
}

示例输出:

/vol/lnxpeayh   -sec=sys,rw=none
/vol/lnxplmulhall   -sec=sys,rw=172.17.10.78:sfilerp01.os.net

希望输出是:

/vol/lnxplmulhall 172.17.10.78
/vol/lnxplmulhall sfilerp01.os.net

代码应该忽略其中包含rw=none的每一行,只是忽略字符串是不够的

1 个答案:

答案 0 :(得分:2)

/rw=none/ {next}
match($0, /rw=([^,]*)/, m) {
    n = split(m[1], N, /:/)
    for (i=1; i<=n; i++) print '$NETAPP_ID', vFiler, $1, N[i];
}

请注意我如何更改match正则表达式中的括号?现在,您不需要substr函数来提取rw值。