複数のフィルタを使用して1つずつ印刷する方法は?

複数のフィルタを使用して1つずつ印刷する方法は?

ログのいくつかのパターンを計算する必要があります。

grep aaa ./logs | wc -l

grep bbb ./logs | wc -l

1行ですべての操作を実行する簡単な方法はありますか?良い

cat ./logs | grep -c aaa | grep -c bbb #didn't work.

ベストアンサー1

次のコマンドを使用できます。

$ grep -oh -e aaa -e bbb ./logs | sort | uniq -c

で以下をman grep読むことができます。

-o、--only-matching一致する行のうち、一致する(空でない)部分のみを印刷します。各部分は別々の出力行に表示されます。

また、次の場合-h

-h、--no-filename出力でファイル名の接頭辞を抑制します。検索するファイルが1つだけ(または標準入力のみ)ある場合、これはデフォルトです。

どちらかを一致させるために使用されます-e。次に、結果を並べ替えて計算するために使用しますuniq

おすすめ記事