一致するパターンと前の行と一致する行数を計算します。

一致するパターンと前の行と一致する行数を計算します。

特定のキャラクターが正常に削除された回数を数えたいです。問題は、ログファイルの1行にスクリプトが文字を削除しようとしているという事実が表示されることです。

Prepare to remove role X

次の行は、削除が成功したかどうかを示します。

正常に削除されました:

Delete Successful

削除に失敗しました:

Failed to delete role X: error code

成功した文字の削除回数を計算する方法は?次のgrepを使いたいです。

grep "Delete Successful" | wc -l

ただし、上記の役割と同じようにログインしたポリシーも削除します。つまり:

Prepare to delete policy X
Delete Successful

または

Failed to delete policy X: error code

1行で「役割を削除する準備」を検索した後、次の行に「削除成功」と表示された回数を計算する方法はありますか?

ベストアンサー1

grepGNUを使用している場合、grep迅速で汚れた解決策は次のとおりです。

grep -A1 "Prepare to remove role" | grep "Delete Successful" | wc -l

grep オプションは、-A1grep に一致する行と一致する行の次の行を印刷するように指示します。その後、2番目のgrepは正常に削除された行のみを印刷します。

これは、「役割Xの削除準備完了」行の直後に「削除成功」行が常に続く場合にのみ安定して機能します。

wc -lまた、注:grepにはその機能が組み込まれているため、必要はありません。

grep -A1 "Prepare to remove role" | grep -c "Delete Successful"

おすすめ記事