Man grep
A regular expression is a pattern that describes a set of strings. Regular expressions are constructed analogously to arithmetic expressions, by using various operators to combine smaller expressions.
Grep understands two different versions of regular expression syntax: “basic” and “extended.” In GNU grep, there is no difference in available functionality using either syntax. In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards.
Here's a simple way to invert matches from string using grep.
You will noticed that this command was being used here for quite sometime now and was never been explained why this parameter had been used from samples covered from this site.
To invert string match, here are several usage how to invert string match or string expression.
To invert a regular string match using grep
# cat testfile.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~
abc
bcd
efg
ab
#abc
#bcd
efg
xyz
~~~~~~~~~~~~~~~~~~~~~~~~~~
# grep -v abc testfile.txt
Results:
~~~~~~~~~~~~~~~~~~~~~~~~~~
bcd
efg
ab
#bcd
efg
xyz
~~~~~~~~~~~~~~~~~~~~~~~~~~
How to grep all string that does not starts with # character? This is handy specially when filtering conf that contains strings that start with # (comment character) and you wish to extract those lines that does not start with # character only
# grep -v '#' testfile.txt
~~~~~~~~~~~~~~~
abc
bcd
efg
ab
efg
xyz
~~~~~~~~~~~~~~~
Another usage for multinested and multiple string searchi using grep command can be done like so
# grep -v ab testfile.txt | grep -v bcd
Alteratively
# grep -v 'ab\|bcd' testfile.txt
Now, how to count the occurences of inverted string matches using grep command would be like so
# grep -cv 'ab\|bcd' testfile.txt
The above command can be useful of counting string matches occurrences from a text file for further string manipulation from bash script. This can be applied on parsing multiple system log files looking for multiple matches of string.
Linux input/output redirection of this grep command can also be applied.
Let us say your current linux box had blocked an IP address from thousand IP address lines from /etc/hosts.deny and you wish to remove it from the list, using linux I/O redirection with inverted string matching using grep can be hand with this situation. Here is an example on how to apply the inverse string matches using grep
# grep -v '123.123.123.123' /etc/hosts.deny > newhosts.deny
# mv newhosts.deny > /etc/hosts.deny
This two commands had removed a single blocked IP address from thousand lines of /etc/hosts.deny without editing it interactively or via string manipulation using sed.
Simple tip using reversed or inverted string matches using grep.
Subscription
Categories
- HowTos (612)
- Linux Devices (40)
- Linux Diggs (620)
- Linux News (1541)
- Linux Videos (24)
Recent Posts
Blog Archive
-
▼
2007
(340)
-
▼
September
(58)
- Dear Linux SysAd Blog Readers
- Proactive monitoring from linux terminal
- deleting new lines and return line from text file
- Google chat setup using PSI howto
- PSI messenger - a truly promising open messaging a...
- Google chat setup using GAIM Pidgin howto
- Linux command line shell variables defined
- ls - displaying directory contents in many ways
- Control of alternative linux executables
- Searching using whereis linux command
- Witchy which linux command
- NeroLinux - diehard Nero burning software
- Google Sky - Explore and Rediscover the Sky
- Celestia - 3D Earth and Sky visualization
- Earth3D - real-time 3D Earth visualization
- GcStar - managing personal collection items
- DStat - resource statistics linux tool
- Bandwidth Monitor-NG - terminal-based interface ba...
- KNemo - KDE network interface monitoring tool
- EtherApe - graphical network activity monitoring tool
- Beauty of Math using Linux
- print leading/trailing lines before/after a matchi...
- Nagios Monitoring - install and generic setup howto
- ChRT- change real-time attribute process scheduling
- squeezed out multiple commented lines
- UNIX to DOS text file format converter
- totally squeezed out multiple blank lines
- squeezed multiple blank lines into single line
- fmt - simple optimal text formatter
- Linux backup powered by RDiff-Backup
- Linux Ping command explained
- read and display text file from terminal
- URLView - URL and email extractor
- TFTP server - setup and install howto
- NMap - Linux port scanning
- removing garbage characters from screen terminal
- invert string match using grep
- RDesktop - remote desktop howto
- Graveman on Linux - burn baby burn burn
- HTOP - interactive process viewer alternative
- Caching DNS server install howto
- BitTorrent - downloading large files made easy
- PHPAlbum - web photo album install howto
- MRTG graph creation with Cisco routers
- Tree view of directories and file listings from co...
- MAC address packet filtering using IPTables
- GTK-based GNOME Linux Tools
- Linux backups powered by RSnapShot
- MRTG tutorial, install and howtos
- FindSMB - view shared folders from network
- Squid - upgrade and install howto
- prompt and press a key between script lines
- Devede - DVD/VCD video authoring and creation tool
- display file and file system status
- determine file type
- GNOME GUI task scheduler install howto
- Linux backups powered by Rsync
- KPackage - GUI package administration and manageme...
-
▼
September
(58)
Sunday, September 9, 2007
invert string match using grep
Subscribe to:
Post Comments (Atom)
ILoveTux - howtos and news | About | Contact | TOS | Policy
0 comments:
Post a Comment