- Linux find string in any file
- Find string in file
- Find string in file ignoring cases
- Find string in current directory
- Find string recursively
- Find files that do not contain a string
- Find string recursively in only some specific files
- Find string recursively in all files except the ones that contain certain extensions
- Find string recursively all files including some extensions and excluding others
- Find string recursively in only some specific files and show their filename
- Find files and find a string in them using find
- Finding a File Containing a Particular Text String In Linux Server
- grep command syntax for finding a file containing a particular text string
- How to search and find all files for a given text string
- Task: Search all subdirectories recursively
- Task: Only display filenames
- Task: Suppress file names
- Task: Display only words
- Task: Search for two or more words
- Task: Hide warning spam
- Task: Display matched text in color
- Task: Ignore case
- How do I find all files containing specific text on Linux?
- Finding text strings within files using grep
- How to Find a Specific String or Word in Files and Directories
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Linux find text in files
- Find text in files into a directory
- 1. Find text in files recursive
- 2. Find text in files case insensitive and recursive
- 3. Find multiple words in files
- Find Files Containing Specific Text in Linux
- Find files containing specific text with mc
- About Sergey Tkachenko
- 6 thoughts on “ Find Files Containing Specific Text in Linux ”
Linux find string in any file
The commands used are mainly grep and find.
Find string in file
grep string filename
grep name file.txt
Find string in file ignoring cases
grep string filename
grep -i name file.txt
Find string in current directory
grep string .
Find string recursively
grep -r string .
Find files that do not contain a string
grep -L string .
Find string recursively in only some specific files
grep string -r . —include=*.myextension
grep string -r . —include=*.
grep «name=Oscar» -r . —include=*.js
* if you specify —include it won’t look for the string in all files, just the ones included
Find string recursively in all files except the ones that contain certain extensions
grep string -r . —exclude=*.
grep «Serializable» -rl . —exclude=*.
Find string recursively all files including some extensions and excluding others
grep string -r . —include=*.myextension —exclude=*.myextension2
grep «my=string» -r . —include=*.
*It won’t look for the string in the js files.
Find string recursively in only some specific files and show their filename
grep string -rl . —include=*.myextension
grep «name=Oscar» -rl . —include=*.js
Find files and find a string in them using find
find . -name ‘*.extension’ -exec grep string +
find . -name ‘*.txt’ -exec grep Mytext <> +
find . -type f \( -name ‘*.htm’ -or -name ‘*.html’ \) -exec grep -i «mystring» <> +
Источник
Finding a File Containing a Particular Text String In Linux Server
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | No |
Requirements | grep |
Est. reading time | Less than 2 minutes |
You need to use the grep command. The grep command or egrep command searches the given input FILEs for lines containing a match or a text string.
grep command syntax for finding a file containing a particular text string
The syntax is:
grep » text string to search » directory-path
grep [option] » text string to search » directory-path
grep -r » text string to search «directory-path
grep -r -H » text string to search » directory-path
egrep -R » word-1|word-2 » /path/to/directory
egrep -w -R » word-1|word-2 » directory-path
Let us see some common example on how to use grep to search for strings in files.
How to search and find all files for a given text string
In this example, search for a string called ‘redeem reward’ in all text (*.txt) files located in /home/tom/ directory, use:
$ grep «redeem reward» /home/tom/*.txt
OR
$ grep «redeem reward»
Task: Search all subdirectories recursively
You can search for a text string all files under each directory, recursively with -r option:
$ grep -r «redeem reward» /home/tom/
OR
$ grep -R «redeem reward» /home/tom/
Look for all files containing cacheRoot text on Linux:
grep -R cacheRoot /home/vivek/
Trying to find all files containing specific text on my Linux desktop
Task: Only display filenames
By default, the grep command prints the matching lines. You can pass -H option to print the filename for each match:
$ grep -H -r «redeem reward» /home/tom
Sample outputs:
To just display the filename use the cut command as follows:
$ grep -H -R vivek /etc/* | cut -d: -f1
Sample outputs:
Task: Suppress file names
The grep command shows output on a separate line, and it is preceded by the name of the file in which it was found in the case of multiple files. You can pass the -h option to suppress inclusion of the file names in the output:
$ grep -h -R ‘main()’
Task: Display only words
You can select only those lines containing matches that form whole words using the -w option. In this example, search for word ‘getMyData()’ only in
/projects/ dirctory:
$ grep -w -R ‘getMyData()’
Task: Search for two or more words
Use the egrep command as follows:
$ egrep -w -R ‘word1|word2’
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Task: Hide warning spam
grep command generate error message as follows due to permission and other issues:
No such file or directory
No such device or address
Permission denied
To hide all errors or warning message spam generated by the grep command, append 2>/dev/null to grep command. This will send and hide unwanted output to /dev/null device:
$ grep -w -R ‘getMyData()’
Task: Display matched text in color
Pass the —color option to the grep command display matched text/words in color on the terminal:
Fig.01: grep command in action with colors and hiding the warnings on screen
Task: Ignore case
Our final example ignore case distinctions in both the search PATTERN and the input files:
grep -i -R ‘word’ /path/to/dir
grep -i -r ‘income tax’
How do I find all files containing specific text on Linux?
The syntax is:
egrep ‘pattern’ -rnw /path/to/dir/
egrep ‘word1|word2’ -rnw /home/vivek/backups/
Finding text strings within files using grep
In this example search for lines starting with any lowercase or uppercase letter:
grep «^[a-zA-Z]» -rns
- -r – Recursive search
- -R – Read all files under each directory, recursively. Follow all symbolic links, unlike -r grep option
- -n – Display line number of each matched line
- -s – Suppress error messages about nonexistent or unreadable files
- -w – Only work on words i.e. search only those lines containing matches that form whole words
- -l – Show the name of each input file when match found
- -i – Ignore case while searching
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
How to Find a Specific String or Word in Files and Directories
Do you want to find all files that contain a particular word or string of text on your entire Linux system or a given directory. This article will guide you on how to do that, you will learn how to recursively dig through directories to find and list all files that contain a given string of text.
A simple way to work this out is by using grep pattern searching tool, is a powerful, efficient, reliable and most popular command-line utility for finding patterns and words from files or directories on Unix-like systems.
The command below will list all files containing a line with the text “check_root”, by recursively and aggressively searching the
Find a Word in Directory
Where the -R option tells grep to read all files under each directory, recursively, following symbolic links only if they are on the command line and option -w instructs it to select only those lines containing matches that form whole words, and -e is used to specify the string (pattern) to be searched.
You should use the sudo command when searching certain directories or files that require root permissions (unless you are managing your system with the root account).
To ignore case distinctions employ the -i option as shown:
If you want to know the exact line where the string of text exist, include the -n option.
Find String with Line Number
Assuming there are several types of files in a directory you wish to search in, you can also specify the type of files to be searched for instance, by their extension using the —include option.
This example instructs grep to only look through all .sh files.
In addition, it is possible to search for more than one pattern, using the following command.
Find Multiple Words in Files
That’s It! If you know any other command-line trick to find string or word in files, do share with us or ask any questions regarding this topic, use the comment form below.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Linux find text in files
Posted on February 12, 2016 By Nikola Stojanoski
If you need to find text in file or multiple files on a Linux system you can use grep (global regular expression print) in a very efficient way to do so. Here are few examples that I commonly use.
Find text in files into a directory
Use this command to find the text you are looking for within the directory
If you want to select only those lines containing matches that form whole words use the -w switch (–word-regexp). If you search for “word” this will NOT display words like someword, word123, etc.
If you don’t know the capitalization of words and want to ignore case distinctions use the -i switch (–ignore-case). If you search for “word” it will display Word, WORD, word, wORD, etc.
And the most often used command for me is recursive search -r switch (–recursive)
And finally few examples that i use the most
1. Find text in files recursive
Invoke -w (–word-regexp) and -r (–recursive) switch:
2. Find text in files case insensitive and recursive
Invoke -i (–ignore-case) and -r (–recursive) switch
3. Find multiple words in files
To find two different words you must use egrep
This days i use this to search trough logs, mostly apache, nginx and mail logs.
Also don’t forget to use zgrep. Zgrep invokes grep on compressed or gzipped files. All options specified are passed directly to grep.
For this we will use grep case insensitive because sometimes mail addresses can have Capital letters in the user First and Last Names.
This will output file and date when the mail was sent to the user, and than you can grep the time to get all the logs for that time:
You can now easy look at the log:
This ware just few command i usually use, look at the man page for more options.
Источник
Find Files Containing Specific Text in Linux
Linux, regardless of the distro you use, comes with a number of GUI tools which allow searching for files. Many modern file managers support file searching right in the file list. However, most of them do not allow you to search inside a file’s contents. Here are two methods you can use to search for file contents in Linux.
I would like to share the methods I use myself.
The first method involves the grep utility, which exists in any distro, even in embedded systems built on busybox.
To find files containing specific text in Linux, do the following.
- Open your favorite terminal app. XFCE4 terminal is my personal preference.
- Navigate (if required) to the folder in which you are going to search files with some specific text.
- Type the following command:
Here are the switches:
-i — ignore text case
-R — recursively search files in subdirectories.
-l — show file names instead of file contents portions.
./ — the last parameter is the path to the folder containing files you need to search for your text. In our case, it is the current folder with the file mask. You can change it to the full path of the folder. For example, here is my command
Note: Other useful switches you might want to use with grep:
-n — show the line number.
-w — match the whole word.
Another method I use is Midnight Commander (mc), the console file manager app. Unlike grep, mc is not included by default in all Linux distros I’ve tried. You may need to install it yourself.
Find files containing specific text with mc
To find files containing some specific text using Midnight Commander, start the app and press the following sequence on the keyboard:
Alt + Shift + ?
This will open the search dialog.
Fill in the «Content:» section and press the Enter key. It will find all files with the required text.
You can place these files in the left or right panel using the Panelize option and copy/move/delete/view/do whatever you want them.
Midnight Commander is a very time-saving tool when it comes to search.
Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:
Share this post
About Sergey Tkachenko
Sergey Tkachenko is a software developer from Russia who started Winaero back in 2011. On this blog, Sergey is writing about everything connected to Microsoft, Windows and popular software. Follow him on Telegram, Twitter, and YouTube.
6 thoughts on “ Find Files Containing Specific Text in Linux ”
The code that you provided helped me. There are also another commands which I cannot remember to find text in files but this one is made it quickly. I have bookmarked this post for further usage. Thank you.
WHAT ABOUT WINDOWS?!
I use Total Commander for that.
Midnight Commander reminds me of XTree for DOS way, evidently, way way, back in the day!! 🙂 Anyone else remember!?
It reminds me of Norton Commander. Good days.
Источник