grep及正则表达式

grep简介

grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。通常grep有三种版本grep、egrep(等同于grep -E)和fgrep。egrep为扩展的grep,fgrep则为快速grep(固定的字符串来对文本进行搜索,不支持正则表达式的引用但是查询极为快速)。grep是Linux文本处理三剑客之一。

grep使用方式

grep [options] PATTERN [FILE...]

-i : 忽略字符的大小写

--color:高亮显示关键字

-v: 显示没有被模式匹配到的行

-o:只显示被模式匹配到的字符串

Pattern: 文本字符和正则表达式的元字符组合而成匹配条件

正则表达式:REGular EXPression, REGEXP

元字符:

.: 匹配任意单个字符

[]: 匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

             字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]

匹配次数(贪婪模式):

*: 匹配其前面的字符任意次        

.*: 任意长度的任意字符

\?: 匹配其前面的字符1次或0次

\{m,n\}:匹配其前面的字符至少m次,至多n次

                 \{1,\}

                 \{0,3\}

位置锚定:

^: 锚定行首,此字符后面的任意内容必须出现在行首

$: 锚定行尾,此字符前面的任意内容必须出现在行尾

^$: 空白行

\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

分组:

\(\)

\(ab\)*

后向引用

\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容

\2:

\3:

Tips

  • [root@mysql ~]# alias grep='grep --color'

设置别名  grep默认关键字高亮显示

  •  查询以空白字符数字结尾的行

[root@mysql ~]# grep '[[:space:]][[:digit:]]$' /etc/inittab

  • He love his lover.    She like her liker.  查询这样的内容

[root@mysql ~]# grep '\(l..e\).*\1' test3.test

  • 在/proc/meminfo查询以s或者S开头的内容

[root@mysql ~]# grep '^[sS]' /proc/meminfo 

  • 取出默认shell为bash,且其用户ID号最小的用户的用户名

 grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1

  • 显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行

grep '^#[[:space:]]\{1,\}[^[:space:]]*' /etc/inittab

  • 显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;

grep ':[[:digit:]]:' /etc/inittab

grep ':[0-9]:' /etc/inittab

  • 显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行

grep '^\([0-9]\).*\1$' /etc/inittab

  • 查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息, 文件为/etc/passwd

 grep '^student\>' /etc/passwd | cut -d: -f3

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值