How to Search for a Specific Word Inside Multiple Files in Linux

If you are trying to find a specific configuration variable, an IP address, or a piece of code hidden somewhere within a massive project folder, opening dozens of text files manually is a terrible use of time. Instead, Linux provides the incredibly powerful grep command, which can instantly scan the actual contents of thousands of files simultaneously to find exactly what you are looking for.

Using the ‘grep’ Command

The grep utility is pre-installed on every Linux distribution. To search through an entire directory and all of its sub-directories, you need to use the recursive flag.

  1. Open your terminal application.
  2. Use the following command syntax:
    grep -rni "your_search_word" /path/to/folder/

Understanding the Command Flags

To get the most useful output, we combined three specific letters (-rni) immediately after the grep command. Here is exactly what they do:

  • -r (recursive): Tells grep to search through the current folder, plus every single folder nested inside of it. Without this, grep only checks the top-level files.
  • -n (line number): Tells grep to print the exact line number where the word was found (e.g., config.txt:42). This makes it incredibly easy to open the file later and jump straight to the correct line.
  • -i (ignore case): Tells grep to ignore capitalization. A search for “server” will successfully find “Server,” “SERVER,” and “server,” ensuring you do not miss anything due to a typo.

For example, if you wanted to find the word localhost inside the /etc/ directory, you would run: grep -rni "localhost" /etc/.

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.

Receive our best articles and tips delivered straight to your inbox.