Linux Command grep Regular Expressions
in Linux there are three swords that deal with text, and what I'm going to say now is the use of the grep regular expression, which is just a notation, as long as the tool supports this notation, The tool can then handle the string of regular expressions. vi grep, awk, sed, etc. all support regular Expressions . . Regular expressions have a basic regular expression and an extended regular expression.
grep is the basic expression by default.
Basic Regular Expressions: default number of matches: greedy mode, as much as possible to match.
Extended Regular Expressions: Based on basic regular expressions, add some functionality, basically the same.
1. grep command
grep "Parameters" search for files
Parameters:
--color=auto: Highlighting the matched string
-V: Display mode does not match rows
-I: ignore character case ;
-O: Show only strings that can be matched to a pattern
-Q: silent mode
-E: Using extended regular Expressions
-N: output line number by the way
The metacharacters of the basic regular expression:
Character Matching:
.: matches any single character;
[]: matches any single character within the specified range;
[^] : matches any single character within the specified range;
Number of occurrences: used to specify the number of times after the character;
*: any time;
\? :0 or 1 times;
\+:1 or more times ;
\{m\}: Precisely limited to m times;
\{m,n\}: at least m times, up to n times,[M,n]
\{0,n\}: up to n times;
\{m,\}: At least m times;
. *: matches any character of any length;
Location anchoring:
^: anchor at the beginning of the line, for the leftmost mode;
$: end of line anchoring; for the rightmost side of the pattern;
\<,\b: The first anchor of the word, the left side of the pattern used to denote the word;
\> \b: the ending anchor; the right side of the pattern used to represent the word ;
^$: blank line;
Group:\ (\)
The contents of the pattern in the grouped parentheses are recorded by the regular expression engine during execution, and the built-in variables are saved: The variables are \1, \2, ...
\1: from the left, the first opening parenthesis, and the matching right parenthesis in the middle of the pattern match to the content;
Back reference: Use a variable to refer to the character that matches the pattern in the preceding grouping brackets;
2. Egrep command
Extend the metacharacters of regular expressions:
Character Matching:
.: any single character
[]:
[^]:
Number of matches:
*
?: 0 or 1 times;
+: more than 1 times;
{m}: exact match M times;
{M,n}: at least m times, up to n times;
Anchoring:
^: anchoring the beginning of the line
$: Anchor Line End
\<, \b
\>, \b
Group: ()
Title: Displays the lines in the/etc/passwd file that end with bash
-bash-4.1#grep--color ' bash$ '/etc/passwdroot:x:0:0:root:/root:/bin/bashoracle:x:3000:3000::/home/database:/bin/ Bash51cto:x:3001:3001::/home/51cto:/bin/bash
title: Displays the two-digit or three-digit number in the/etc/passwd file
-
Bash-4.1#grep--color ' \b[[:d igit:]]\{2,3\}\b '/etc/passwdmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x : 10:14:UUCP:/VAR/SPOOL/UUCP:/SBIN/NOLOGINOPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGINGAMES:X:12:100:GAMES:/USR /games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:ftpuser:/var/ftp:/sbin/ Nologinnobody:x:99:99:nobody:/:/sbin/nologindbus:x:81:81:systemmessage Bus:/:/sbin/nologin
' Netstat-tan ' command result with ' Listen "followed by 0 1
-bash-4.1#netstat -tan |grep --color ' listen[[:space:]]*$ ' tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* listen tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* listen
title: Add User bash,testbash,basher, and nologin user (nologin user's shell /sbin/nologin), and then find the line in the/etc/passwd file that has the same user name as its shell name
-bash-4.1#grep--color ' \ (bash\). *\1 '/etc/passwdbash:x:3002:3002::/home/bash:/bin/bashtestbash:x:3003:3003::/ Home/testbash:/bin/bashbasher:x:3004:3004::/home/basher:/bin/bash
-bash-4.1#grep--color ' ^\ (nologin\). *\1 '/etc/passwdnologin:x:3005:3005::/home/nologin:/sbin/nologin
title: Displays the default shell and UID for root,CentOS, or user1 users on the current system (please create these users beforehand, if not present)
-bash-4.1#grep-e--color ' ^root|^centos|^user1 '/etc/passwd | Cut-d:-f1,3,7root:0:/bin/bashcentos:3006:/bin/bashuser1:3007:/bin/bash
title: Find A word in the/etc/rc.d/init.d/functions file (the middle of the word can be underlined) followed by a set of parentheses line
-bash-4.1#grep--color '. * () '/etc/rc.d/init.d/functionsfstab_decode_str () {checkpid () {__readlink () {__fgrep () {__ Umount_loop () {__umount_loopback_loop () {
title: Use echo to output a path, and then Egrep to find its path base name; further use Egrep to remove its directory name
-bash-4.1#echo/etc/sysconfig/network-scripts/ifcfg-eth0 |grep--color '. * '/etc/sysconfig/network-scripts/ Ifcfg-eth0-bash-4.1#echo/etc/sysconfig/network-scripts/ifcfg-eth0 |egrep--color-o ' ^/.*/'/etc/sysconfig/ network-scripts/
title: Find the number between 1-255 in the ifconfig command execution result
-
Bash-4.1#ifconfig | egrep --color ' \< ([1-9]|[ 1-9][0-9]|1[0-9][0-9]|2[1-9][0-9]|25[0-9]) \> ' Eth0 link encap: ethernet hwaddr 00:0c:29:7e:e8:80 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe7e:e880/64scope:link up broadcast running multicast mtu:1500 metric:1 rx bytes :791817 (773.2 kib) TX bytes:379603 (370.7 kib) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 scope:host up loopback running mtu:65536 metric:1
This article is from the "8430482" blog, please be sure to keep this source http://8440482.blog.51cto.com/8430482/1690355
Linux command grep Regular expression