How to Find all Files Containing Specific Text (string) on Linux
Last Updated :
31 Jul, 2023
Suppose you are looking for a file in Linux, but you have forgotten its name. You only remember the contents of the file. How will you find the file in this case? Well, there are some useful methods that will help you find a file containing a specific text (or string) in Linux. The string needs to be specified by the user. So, let's take a look at the methods:
Methods to Find All Files Containing Specific Text (string) on Linux
Method 1: grep command
grep command in Linux that is used to search for files containing a specific text or string. By default, it shows us the lines in the files that contain the particular text. If we append the -l option to it, the command will show us all the files that contain the particular text.
Example:
Suppose, we have a directory that contains two files named file1.txt and file2.txt.
Contents of file1.txt:
This line contains text.
Contents of file2.txt:
You should learn Data Structures & Algorithms.
Now, we will use the grep command with the -l option to search for text in given files located inside the current directory. See the following example:

It can be clearly said from the above example that the grep command has successfully found the given string in file1.txt. As a result, it displayed the file name on the screen.
We can also use the -i option to tell grep to ignore the case. Look at the following example:

Above, we have first used the previous command, but the given string is Text. Because file1.txt contains text, not Text, it is not taken into consideration. Here, the search operation is performed keeping the case in mind. Then, we used the -i option. As a result, the case is ignored and the given string matches with the one that file1.txt contains. Hence, the file name is displayed on the screen.
Another variation is to use the -r option. It suggests grep to search for the given string in the current directory and its subdirectories recursively. Look at the below example:

file1.txt and file2.txt are located in the files folder, not in the current directory, i.e. desktop. So, if we don't use the -r option, no files with matching strings will be found because they don't exist in the current directory. But we used the -r option and also omitted the file names. As a result, grep searches for matching strings in not only the current directory but also in its subdirectories as well. Hence, file1.txt is found and displayed on the screen.
Method 2: The combination of find and grep command
find is another useful command in Linux. We will combine find with the -type f option to search for files and the -exec option to apply to grep on the files that are found. Look at the following example:

Clearly, the search operation finds file1.txt as it contains the matching string. Hence, the file name is displayed on the screen.
Method 3: Find files containing specific text with mc
We can also search for files using Midnight Commander (mc). Open the application and press Alt + Shift + ? to open the Find File dialogue box. You will see a Starting box at the top. In the box, type the path where the files exist. Then, under the content box, type the string you want to search. In our case, we searched for text in the Files directory:

It can be clearly seen below that the search operation has successfully found file1.txt, which contains the matching string.

Method 4: ripgrep command
ripgrep (written as rg) is a command that can be used as an alternative to the grep command. The implementation is below:

file1.txt is found and hence, the file name is displayed on the screen.
Method 5: ack command
Yet another command we can use is the ack command. Here is the implementation:

file1.txt is successfully found and displayed on the screen.
Similar Reads
List all Files with Specific Extension in R R programming language contains a wide variety of method to work with directory and its associated sub-directories. There are various inbuilt methods in R programming language which are used to return the file names with the required extensions. It can be used to efficiently locate the presence of a
3 min read
How To List All Commits That Changed A Specific File In Git? Git, a widely used version control system, allows developers to track changes in their codebase efficiently. One common need when working with Git is to list all commits that have modified a specific file. This can be particularly useful for tracking changes, understanding the history of a file, or
1 min read
Find line number of a specific string or substring or word from a .txt file in Python Finding the line number of a specific string and its substring is a common operation performed by text editors or any application with some level of text processing capabilities. In this article, you will learn how to find line number of a specific string or substring or word from a .txt (plain tex
4 min read
How to list All Files in a Commit in Git? Working with Git, it's often essential to inspect the contents of your commits. Whether you need to review changes, debug issues, or understand the history of your project, knowing how to list all files in a commit is a fundamental skill. In this article, weâll walk you through the steps to list all
3 min read
Find all the Files in a Directory with .txt Extension in Python Directory traversal is a common operation performed by file locator in Operating Systems. The operating system offers elaborate methods for streamlining the search process and the choice to search for a selected filename/extension. This article will teach you how to find all the files in a directory
5 min read
How to Find Recently Modified Files in Linux? Here we are going to see how to find recent or todayâs modified files in Linux. Locating files with a particular name is one of the problems Linux user's faces, it would be easier when you actually know the filename. let's assume that you have created a file in your home folder and you have forgotte
2 min read
How to Find a File in Linux | Find Command The find command in Linux is used to search for files and directories based on name, type, size, date, or other conditions. It scans the specified directory and its sub directories to locate files matching the given criteria.find command uses are:Search based on modification time (e.g., files edited
9 min read
How to find and replace the content from the file or string using PowerShell PowerShell is a versatile utility that can manage files and folders in various ways. It gives you access to the system's files and directories and lets you create, copy, delete, move, renames, and examine them. Several useful PowerShell cmdlets can read, write, and replace data in files. In this art
2 min read
How to find the rpm package of a specific file or library in CentOS/RHEL Software applications designed for Linux systems are distributed in the form of packages that contain pre-compiled binaries, libraries, configuration files, and other details about the package. In the short term, it is a collection or bundle of the below files archived together. Binary files: It is
4 min read
How to Find Branches Containing a Specific Git Commit? Git is a powerful version control system that enables developers to collaborate efficiently on projects, track changes, and manage codebases effectively. One common task in Git is finding branches that contain a specific commit. This can be useful for various reasons, such as identifying where a bug
3 min read