キーワードを検索してそのアイテムを取得します。

キーワードを検索してそのアイテムを取得します。

ファイル名別にグループ化されたディレクトリでキーワードの発生を確認したいと思います。

例:
キーワード - TEST(TEST1、TEST2などが有効な結果である可能性があることを意味)
ファイル - a.txt、b.txtなど(ディレクトリ../tmpにあります)。

出力は次のとおりです。

a.txt - 4
b.txt - 5
c.txt - 0

私は試しましたがgrep -o "TEST" a.txt、これはTESTと発生回数のみを提供します。たとえば、ファイルが3回表示される場合(例:TEST1、TEST_XXX、TESTXYES)、出力は次のようになります。

TEST
TEST
TEST

または複数のファイル検索が不可能な場合、OUTPUTはTESTで始まる同様の文字列をすべて提供する必要があります。

TEST
TEST_1
TEST_2
TEST4

私も次のことを試しました。

grep -c "TEST" a.txt

ただし、これはカウントのみを提供し、TESTで始まる全文を提供しません。

ベストアンサー1

grep -c一致する印刷数量ワイヤー-oしたがって、オプションと組み合わせると正しい結果が得られません。出力をgrep -o次にパイプしますuniq -c

$ echo 'test1 test2 test3' >/tmp/file1
$ echo 'test1 test2 test3 test4' >/tmp/file2
$ grep -o test /tmp/file* | uniq -c
  3 /tmp/file1:test
  4 /tmp/file2:test

一部のテキスト処理ツールを使用して、さらにパイプして出力を変更できます。

おすすめ記事