How to Find all Files Containing Specific Text (string) on Linux Rumi, November 8, 2024November 8, 2024 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. Src: https://www.geeksforgeeks.org/how-to-find-all-files-containing-specific-text-string-on-linux/ Administrations Collected Articles grepLinux SearchMCSearch