The GREP command in Linux is a powerful tool that you can use to find text within files. It allows you to look through files for specific text or patterns and return any matching results (either all of them or a limited number of them).

In this guide, we will discuss how to use the GREP command to find content within your system.

Person in front of computer with code

What is the GREP command in Linux/Unix?

The GREP command is a Linux/Unix command-line utility that can be used to search through files for specific text patterns. It can search through a single file or multiple files. The GREP command is one of the most commonly used Linux commands, but it can also be very resource-intensive when searching a lot of documents.

Learning how to use GREP is a great way to really understand the power of Linux and why you should use Linux. In Windows, it would be very difficult to find a single passage throughout a lot of text files. In Linux/Unix, it’s a matter of typing up a single command.

It should be noted that most commands that work in Linux will also work in Unix, and vice versa, because Linux was created as a Unix-like kernel. Thus, it can be understood that using the GREP command in Linux is the same as using it in Unix.

Linux Administration: The Complete Linux Bootcamp for 2022

Last Updated March 2022

Bestseller
  • 213 lectures
  • All Levels
4.7 (1,119)

Linux Administration (Ubuntu and CentOS) for Beginners. Get the Linux skills to boost your career and get ahead. | By Andrei Dumitrescu, Crystal Mind Academy

Explore Course

How to use the GREP command in Linux

To use the GREP command in Linux, you will need to open a terminal window or already be using the command line.

Once the terminal window is open, you can type the GREP command followed by the text pattern that you want to search for: a string of characters. You can also specify the filename or directory that you want to search. For example, if you wanted to look for the word “Test” in a file named “example.txt,” you would type the following into the command line:

grep “Test” example.txt

That will look for “example.txt” in the current directory. If you wanted to search for the word “Test” in a directory named “directory,” you would type the following command:

grep “Test” directory/*

The GREP command will print out all of the lines in the files or directories that contain the text pattern that you specified, even if it’s multiple files. You can also specify the output format using the -o option. For example, if you wanted to see the line numbers along with the matching text lines, you would type the following command:

grep -o “Test” example.txt

The GREP command can also be used to search for specific text patterns in a file using regular expressions.

Regular expressions are a special type of text pattern that can be used to look for specific text patterns. They allow you to specify more complex text patterns than simple words or phrases. They are also extraordinarily complex, so many developers spend time learning and practicing with them.

Once you learn regular expressions, however, you’ll find that it’s used in a lot of systems and programming languages.

Controlling the number of matches with GREP

By default, GREP will search for a string and return all the matched lines. It then prints the matches, regardless of the line numbers. If you’re returning 1,000 lines, you’ll see them scroll across the screen very quickly. That can lead to some very large log files.

In many cases, you don’t need to see all the matches. You may only want to see the first five or so. To do this, type in:

grep -n “Test” example.txt. 

The n switch tells GREP to print the line numbers of the matches instead of the matched text.

Performing a global search with GREP

You can search for a string across your entire system.  You can use the -g or –global flag to do this.

This will search through all the files on your system and return all the matches. If you’re looking for a specific file, you can use the -f or –file flag to specify the file name. 

The following command will search through all the files on your system for the string “Test” and return all the matches:

grep -g “Test” *

This can be very useful when you’re not sure exactly where the file is that you’re searching.

Control case sensitivity in GREP

By default, GREP is case sensitive. This means that it will return matches for “Test” and “test” but not for “Test.”

If you want to make GREP case insensitive, you can use the -i or –ignore-case flag. The following command will search through all the files on your system for the string “Test” and return all the matches, regardless of case:

GREP -i “Test” *

This can be very useful when you’re not sure how the string is capitalized.

How to find files in Linux

What if you don’t want to find a string in a file but do want to find an actual file?

In Linux, you can use the find command to search for files.

The find command allows you to specify a number of different options, including the type of file, the size of the file, and when the file was modified.

For example, if you wanted to find all the text files that were larger than 500 kilobytes, you would type the following command:

find . -type f -size +500k

This will search through all the files in the current directory and return all the text files that are larger than 500 kilobytes.

You can also use wildcards with the find command. The * character matches any number of characters while the ? character matches a single character.

The following command will find all the files in the current directory that start with “t” and end with “t:”

find . -name “t*t”

This can be useful when you’re looking for a specific file but don’t know the exact name.

Learn more about common Linux commands

The GREP command is the most straightforward method of finding files within your Linux/Unix system.  But remember that you don’t always need to use Linux/Unix with a command line. There are a lot of systems that will provide a GUI, so you can use your Linux/Unix system just like Windows or a Mac.If you want to learn more about Linux commands, such as how to use SCP command, or how to rename a file in Linux. There are a number of resources available — some of the best are the Linux Courses on Udemy.

Page Last Updated: March 2022