grep简单常用用法

2019-06-01 分类:基础内容, 常用命令 阅读(67) 评论(0)

正则表达式

\             转义符,将特殊字符进行转义,忽略其特殊意义
^            匹配行首,awk中,^则是匹配字符串的开始
$             匹配行尾,awk中,$则是匹配字符串的结尾
^$           表示空行
.              匹配除换行符\n之外的任意单个字符
[ ]            匹配包含在[字符]之中的任意一个字符
[^ ]          匹配[^字符]之外的任意一个字符
[ - ]          匹配[]中指定范围内的任意一个字符,例:[1-9][a-z]
?              匹配之前的项1次或者0次
+             匹配之前的项1次或者多次
*              匹配之前的项0次或者多次, .*
()             匹配表达式,创建一个用于匹配的子串
{ n }         匹配之前的项n次,n是可以为0的正整数
{n,}          之前的项至少需要匹配n次
{n,m}        指定之前的项至少匹配n次,最多匹配m次,n<=m
|               或者,|两边的任意一项,ab(c|d)匹配abc或abd

特定字符:
[[:space:]]      空格
[[:digit:]]        [0-9]
[[:lower:]]       [a-z]
[[:upper:]]      [A-Z]
[[:alpha:]]       [a-Z]


grep参数说明:

-n:显示行号

-v:取反

-E:使用扩展正则==egrep

-i:忽略大小写

-o:只输出匹配到的内容,匹配行中的其他内容不输出

-w:按照单词过滤

-r:遍历目录查找

-A n:输出匹配内容的后n行(包括匹配行)

-B n:输出匹配内容的前n行(包括匹配行)

-C n:输出匹配内容的前后n行(包括匹配行)

\<:词首锚定,同\b

\>:词尾锚定,同\b


举例:

#过滤以m开头的行

[root@m01 ~]# grep '^m' passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

#过滤以sync结尾的行

[root@m01 ~]# grep 'sync$' passwd
sync:x:5:0:sync:/sbin:/bin/sync

#过滤空行,不显示空行

[root@m01 ~]# grep -v '^$' passwd

#显示匹配内容的前2行

[root@m01 ~]# grep -B2 '^m' passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

#显示匹配内容的后2行

[root@m01 ~]# grep -A2 '^m' passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

#显示匹配内容的前后2行

[root@m01 ~]# grep -C2 '^m' passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

#过滤nologin,只显示匹配的内容

[root@m01 ~]# grep -o 'nologin' passwd
nologin
nologin
...

#过滤出sever的单词

[root@m01 ~]# grep -w 'server' /etc/ssh/sshd_config
# This is the sshd server system-wide configuration file.  See
Subsystem sftp /usr/libexec/openssh/sftp-server
# ForceCommand cvs server

#遍历/root目录中的文件,包含hello的内容

[root@m01 ~]# grep -r 'hello' /root/
/root/.bash_history:cowsay hello

您可能也喜欢:

shell中变量的替换和删除

变量表达式 说明 ${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 ${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 ${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 ${变...

more

linux查看组内成员

groupname=nginx && cat /etc/passwd | grep `grep ${groupname} /etc/group | awk -F: '{print $3}'` | awk -F: '{print $1}' && unset groupn...

more

SSL/TSL证书文件申请和自签证书

一、证书申请过程: 生成key和csr文件---->通过csr文件向证书颁发机构(CA)申请crt文件   二、生成key和csr文件: 创建目录 mkdir /server/cert -p cd /server/cert 生成私钥和证书签署文件 openssl req ...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

切换登录

注册