Blog

03/06/2019

HowTo: grep All Sub-directory For Files



How do I grep all sub directories? How can I use grep command through all sub-directories on Linux or Unix like operating systems? How do I use grep to find pattern including all subdirectories on OS X/BSD/Unix-like operating systems?

You can use grep command to search files for given words on a Linux or Unix-like system. The basic syntax is as follows:

grep 'word' file
grep 'word1 word2' file1 file2
grep [option] 'word1 word2' file1 file2

You can search all text files in the current directory with wild cards:

grep 'word-to-search' *

Search sub directories recursively using grep

Pass the -r option to grep command to search recursively through an entire directory tree. With this option one can search the current directory and and all levels of subdirectories by passing the -r or -R to the grep command. The syntax is:

grep -r 'word-to-search' *

OR

grep -R 'word-to-search' *

Examples

For example, the following would search all files in the current directory and in all of its subdirectories for every line containing the word ‘main()’:

grep -r 'main()' *

The following example would search for /etc/ and all of its subdirectories for every line containing the ip address ‘192.168.1.254’:

grep -r '192.168.1.254' /etc/

Other options

You can use the find command as follows:

find /dir/to/search -type f -iname "pattern" -print0 | xargs -I {} -0 grep --color 'word-to-search' "{}"

For example, search for an IP address ‘192.168.1.254’ in all *.conf files located in /usr:

## must run as root #
find /usr/ -type f -iname '*.conf' -print0 | xargs -I {} -0 grep -H --color '192.168.1.5' "{}"
Recommend readings

Posted by: SXI ADMIN

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

14/08/2019

How to KVM, QEMU start or stop virtual machine from command line (CLI)

KVM or Kernel Based Virtual Machine is a popular virtualization technology. It allows you to run virtual guest machines over a host machine. To start...
14/08/2019

How to Docker backup Saving and restoring your volumes

Running a Docker volume backup First, we spin up a temporary container, and we mount the backup folder and the target Docker volume to this container....
12/08/2019

How to Start and Enable Firewalld on CentOS 7

In this article, we discuss how to start and enable firewalld. It is highly recommended that you have a firewall protecting your server.Pre-Flight CheckThese...