特定の単語を含むファイルを検索する方法は?


37

特定の単語を含むファイルを検索する方法は?


5
実際には、特定の単語を含む検索ファイルNAMESを意味しますか?すなわち、名前にFUNという用語が含まれるすべてのファイル、FUN_time.txt FUN_stuff.txtまたは特定の単語をファイル内で検索しますか?
dr_willis

回答:


51

コマンドラインには、いくつかのオプションがあります。私が最もよく使う3つは...

  1. locate {part_of_word}

    これは、locate-databaseが最新であることを前提としていますが、次の方法で手動で更新できます。 sudo updatedb

  2. grepdr_willisで説明されています。1つのコメント:-Rgrepにディレクトリ内も検索されます。例:

    cd\
    grep -R {something_to_look_for} {where_to_look_in}
    
  3. find . -name '*{part_of_word}*' -print

どこで .現在のディレクトリはあり、*ワイルドカードです。

ああ、あなたもこれらを組み合わせることができます。例: locate {something}|grep {some_part_of_something}|more

私が正しく思い出す場合:locate最も速いものであり(データベースが最新であると仮定して)find、最も遅いものです。またgrep、最も複雑ですが、正規表現を使用できるため、これらの中で最も汎用性の高いものです。



4

これには、grepコマンドがよく使用されます。

grep PATTERNファイル名

grepは非常に複雑な検索を実行できます。

willis@Cow:~$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c

3
または、「rgrep word」を実行できます。すべてのファイルとサブディレクトリで再帰的に「単語」を検索するには
ジェレミービチャ

4

を使用grepwordて、指定されたに含まれるファイルをリストできますdirectory

grep -Ril word directory

ここ:
* -Rサブディレクトリ内のファイルを再帰的に検索します。
* -iテキストの大文字小文字を無視する
* -lファイルの内容部分ではなくファイル名を表示する。(注意:-L単語を含まないファイル名を示します)。

man grepすべてのオプションを取得するために使用します


3
ご存じのとおり-i、大文字と小文字を区別しない検索を実行します。
デビッドフォースター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.