- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to suppress a binary file matching results in grep on Linux?
The grep command in Linux is used to filter searches in a file for a particular pattern of characters. It is one of the most used Linux utility commands to display the lines that contain the pattern that we are trying to search.
Normally, the pattern that we are trying to search in the file is referred to as the regular expression.
Syntax
grep [options] pattern [files]
While there are plenty of different options available to us, some of the most used are −
-c : It lists only a count of the lines that match a pattern -h : displays the matched lines only. -i : Ignores, case for matching -l : prints filenames only -n : Display the matched lines and their line numbers. -v : It prints out all the lines that do not match the pattern
Now, let’s consider a case where we want to find a particular pattern in all the files in a particular directory, say dir1.
Syntax
grep -rni "word" *
In the above command replace the “word” placeholder with
For that we make use of the command shown below −
grep -rni "func main()" *
The above command will try to find a string “func main()” in all the files in a particular directory and also in the subdirectories as well.
Output
main.go:120:func main() {}
In case we only want to find a particular pattern in a single directory and not the subdirectories then we need to use the command shown below −
grep -s "func main()" *
In the above command we made use of the -s flag which will help us to not get a warning for each subdirectory that is present inside the directory where we are running the command.
Output
main.go:120:func main() {}
Now we know how grep command works in Linux. If we want to ignore all the cases that are matched are from a binary file, then we can make use of the following flags shown below along with the grep command
Flags
-I -- process a binary file as if it did not contain matching data; -n -- prefix each line of output with the 1-based line number within its input file -H -- print the file name for each match
Command
grep -I -n -H “func main()” *
Output
main.go:120:func main() {}
- Related Articles
- How to grep and replace a word in a file on Linux?
- How to invert a grep expression on Linux?
- How to limit the number of results returned from grep in Linux?
- How to preserve colouring after piping grep to grep in Linux?
- How to grep multiline search patterns in Linux?
- How to grep string without filenames in Linux?
- How to grep a string in a directory and all its subdirectories in Linux?
- How to find the most recent file in a directory on Linux?
- How to quickly sum all the numbers in a file on Linux?
- How to resume a partially transferred file over ssh on Linux?
- How to encrypt and decrypt a file using gpg command on linux
- How to perform grep operation on all files in a directory?
- How to replace spaces in file names using bash script on Linux?
- How to sort a file in-place in Linux?
- How to match two strings that are present in one line with grep in Linux?
