次のログファイルがありますが、3回目の試みで正常にログインしたユーザーの名前を印刷したいと思います。
cat login.log
user1:failed
user2:failed
user3:success
user1:failed
user2:failed
user4:success
user5:failed
user2:success
user3:failed
user6:success
user1:success
user3:success
user4:success
user4:success
user5:failed
user5:failed
user1:success
user2:failed
予想される出力は次のとおりです。
user1
user2
ベストアンサー1
努力する
awk -F: '/failed/ { f[$1]++;} /success/ && f[$1]==2 { print ; f[$1]=0 ; }'
どこ
-F:
:
区切り文字として使用/failed/ { f[$1]++;}
ユーザーログイン失敗回数の計算/success/ && f[$1]==2 { print $1; f[$1]=0 ; }
条件に応じて結果を印刷します。
コメントに従って特別な名前がある場合(読みやすくするために改行)
awk -F: '$2 == "failed" { f[$1]++;}
$2 == "success" && f[$1]==2 { print ; f[$1]=0 ; }'