Linux三剑客命令常见用法之grep

grep全称是Global Regular Expression Print,是一个能使用正则表达式文本过滤、搜索工具,并把匹配的行打印出来,grep使用权限是所有用户。

一、基本格式

grep  [-vioqABCE]  parttern  /DIR/PATH/FILE


二、常见用法

# grep root /etc/passwd		查找到有root的行并打印出来
# grep -v root /etc/passwd	查找到没有root的行并打印出来
# grep -i root /etc/passwd	查找到有root的行并打印出来,忽略字母大小写
# grep -o root /etc/passwd	查找到有root本身并且打印出来
# grep -q root /etc/passwd	静默模式,不打印出来
# grep -c root /etc/passwd	显示出匹配到的列数
# grep -n root /etc/passwd	查找到有root的行,打印出来并显示行号
# cat /etc/passwd | grep -f /tmp/text.txt 	指定规则文件text.txt,并以此为规则从passwd中查找
# grep -A root /etc/passwd	查找到有root的行,并且与其后两行打印出来
# grep -B root /etc/passwd	查找到有root的行,并且与其前两行打印出来  
# grep -C root /etc/passwd	查找到有root的行,并将其前两行和后两行打印出来
# cat /etc/passwd | grep -E  "root|ming"	查找root或者ming的行并打印出来

三、规则表达式

1、字符匹配
.			匹配任意单个字符
[n]			匹配n字符(任意单个字符)
[^n]			匹配除n外的字符
[:alpha:]		匹配任意字符
[:upper:]		匹配任意大写字母
[:lower:]		匹配任意小写字母
[:digit:]		匹配任意数字
[:space:]		匹配所有空白字符
[:punct:]		匹配标点
[:alnum:]		匹配字符和数字

2、次数匹配

*			匹配前面的字符任意次
\?			前面的字符可有可无
\+			匹配前面的字符至少一次
\{n\}			匹配前面的字符n次
\{n,m\}			匹配前面的字符n到m次

3、位置锚定

^			行首锚定,位于最左侧
$			行尾锚定,位于最右侧
\<			词首锚定
\>			词尾锚定


四、几个练习

1、如果用户root存在,就显示其默认的shell程序

# id root && grep "^root\>" | cut -d: -f7

2、找出/etc/passwd中的两位数或三位数

# grep "\<[0-9]\{2,3\}\>" /etc/passwd

3、找出/etc/rd.d/rc.sysinit文件中至少以一个空白字符开头,且后面存在非空白字符的行

# grep "^[[:space:]]\+[^[:space:]]" /etc/rd.d/rc.sysinit

4、找出netstat -tan命令中 以LISTEN后跟0个、1个以及多个空白字符结尾的行

# netstat -tan | grep "LISTEN[[:space:]]*$"

5、找出用户名和bash名相同的行

# grep "\(^[[alnum]]\+\>\).*\1$"

6、找出root、centos和ming用户的行的用户名UID和shell

# grep -E "^(root|centos|ming)\>" /etc/passwd | cut -d: -f1,3,7


以上是本人记录一些浅显的用法,如有错误,请指正。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值