Emacs: Search Text in Directory

By Xah Lee. Date: . Last updated: .

Find Text in a Directory (requires grep)

Alt+x grep

List all matching text of all files in the current directory.

(requires external grep command.)

The current directory is usually the folder the current opend file is in. You can first call dired to a folder you want.

It will prompt you like this:

grep --color -nH -e ▮

sample input:

grep -nH -e "Cheshire" *html

If you want case insensitive search, add a -i in the grep option.

any command will work, as long as it output in grep format.

output in a *grep* buffer.

emacs grep 2014
emacs grep 2014

Find Text in Nested Directories (requires grep)

Find text in directory and all subdirectories, you can call any of:

Alt+x rgrep

Search all files in current directory and subdirectory.

emacs prompts for

  1. search text
  2. wildcard pattern for file name
  3. base dir
Alt+x lgrep

Search only some files of current dir by using a regex on file names first.

Alt+x grep-find

Use a combination of unix grep and find commands.

Example prompt:

find . -type f -print0 | xargs -0 -e grep -nH -e MySearchStr▮

(the exact prompt depends on your Operating system.)

Search Text from Dired (requires grep)

Alt+x dired-do-find-regexp

Find all matches for REGEXP in marked files or the file under cursor.

Requires the unix command find, xargs, grep.

Show Matched Files in Dired (requires grep)

Alt+x find-dired

Run unix find command to list files and show them in dired.

Find Text in a Directory (no require grep)

Reference

Emacs Find Replace