🖥

Shell | 複数のキーワードが含まれるファイルを grep で一斉検索する ( find + xargs + grep )

2023/08/26に公開

課題

first_textsecond_text の両方が含まれるファイルを一斉検索したい。

検証

両方のキーワードが含まれるものを用意する

first_text
second_text

片方のキーワードしか含まれないものを用意する

first_text
second_text

コマンド

$ find ./ -name "*.txt" | xargs -I %FILE% sh -c 'grep first_text >/dev/null "%FILE%" && grep second_text >/dev/null "%FILE%" && echo "%FILE%"'

  • find で見つかったファイル名を xargssh に渡している
  • grep の標準出力は捨てて、 true / false の判定だけをしている

結果

両方のキーワードが含まれる example1.txt だけが HIT した。

./example1.txt

環境

  • Ubuntu 16.04.2 LTS (Xenial Xerus)
  • Docker version 18.03.1-ce, build 9ee9f40

Gist

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-07-26

Discussion