awk检查文件中的多个模式
这是我的密码:awk检查文件中的多个模式,awk,Awk,这是我的密码: /usr/bin/gawk '{ !/simsX.ip-17-31-28-19/ { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") } !/simsX.ip/ { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&") } } END { for (i in a) prin
/usr/bin/gawk '{
!/simsX.ip-17-31-28-19/ { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
!/simsX.ip/ { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&") }
} END {
for (i in a)
printf("%s=%s\n", i, a[i])
}' /home/nagios/graphite-web_access.log
运行上述代码时,出现以下错误:
gawk: cmd. line:2: !/simsX.ip-17-31-28-19/ { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
gawk: cmd. line:2: ^ syntax error
gawk: cmd. line:3: !/simsX.ip/ { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&") }
gawk: cmd. line:3: ^ syntax error
假设此代码在文件中搜索指定字符串,然后以以下格式输出结果:
.*Unauthorized.*Dup.*=48
.*En_Conn-.*=0
我无法确定问题所在或如何解决。请注意。您将独立条件放在脚本的操作部分,而不是脚本的条件部分 好: 或者不太可能:
awk '{
if (!/simsX.ip-17-31-28-19/) { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
if (!/simsX.ip/) { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&")
}
'
我不明白。请详细说明
awk '{ <condition> { <action> } }`
awk '{ # <<<< NOTE!!!!
!/simsX.ip-17-31-28-19/ { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
!/simsX.ip/ { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&")
} # <<<< NOTE!!!
'
awk '
!/simsX.ip-17-31-28-19/ { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
!/simsX.ip/ { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&") }
'
awk '{
if (!/simsX.ip-17-31-28-19/) { a[".*Unauthorized.*Dup.*"] += gsub("(| ).*Unauthorized.*Duplication.*( |)", "&") }
if (!/simsX.ip/) { a[".*En_NoConn-.*"] += gsub("(| ).*En_NoConn-.*( |)", "&")
}
'