您好我正在尝试让我的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
的每一行,只是忽略字符串是不够的
答案 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
值。