grep命令简介+正则表达式+globbing

grep命令

1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户

2.格式
grep [options]

[options]主要参数:
c:只输出匹配行的计数。
I:不区分大 小写(只适用于单字符)
h:查询多文件时不显示文件名。
l:查询多文件时只输出包含匹配字符的文件名。
n:显示匹配行及 行号。
s:不显示不存在或无匹配文本的错误信息。
v:显示不包含匹配文本的所有行。


3.使用实例

grep ‘root’ /etc/passwd

grep -i ‘root’ /etc/passwd  //不区分大小写

grep --color  ‘root’ /etc/passwd  //高亮显示

alias grep=’grep --color’ 

grep -v  ‘root’ /etc/passwd  //反向查找,匹配到的不显示,没有匹配到的显示出来

grep -o ‘root’ /etc/passwd  //关键词查找每个关键词一行,显示北匹配到的字串



正则表达式

主要知识点:原子、元字符、位置锚定、分组、后向引用


原子:构成正则的最基本单元。举例如下


1>打印字符a-z A-Z 0-9  *?$等字符    


2>转义字符

 \d  包含所有数字[0-9]

 \D  除所有数字外[^0-9]

 \w  包含所有英文字符[a-zA-Z_0-9]

 \W  除所有英文字符外[^a-zA-Z_0-9]
 \s  包含空白区域如回车、换行、分页等 [\f\n\r]



3>自定义组合字符组
 .:匹配任意单个字符

 []:匹配制定范围内的任意单个字符即自定义组合字符

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


4>国际通用字符组

[[:upper:]]   [A-Z]
[[:lower:]]   [a-z]
[[:digit:]]   [0-9]
[[:alnum:]]   [0-9a-zA-Z]
[[:space:]]   空格或tab
[[:alpha:]]   [a-zA-Z]



元字符:修饰原子的个数

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

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

\{m,n\}:匹配其前面大于等于m次小于等于n次的字符


位置锚定:定位原子的个数

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

$:锚定行尾

^$:空白行

\b:锚定词首,其前面或后面的字符必须作文单词的首部或尾部


分组:聚合原子成组

\(abc\) :代表abc成一个原子


后向引用:通常与分组一起使用

\1 :引用第一个左括号以及与之对应的右括号匹配到的内容



使用实例:

grep "\broot"  1.txt :匹配文件中所有单词前缀是root的行

grep "^r..t" /etc/passwd :匹配文件中以r..t开头的行。其中..代表两个任意字符

grep “”l..e“” text.txt :匹配文件中含有l..e的行

grep '\(l..e\).*\1':匹配l..e后边跟任意字符并且必须含有前面()匹配到的内容

         he is my lover ,I love her.

         he is my liker , I like her.


grep --color -A 2 '^core id' /proc/cpuinfo 将匹配到的行后边两行也显示

-B 2 前两行

-C 2 前后两行

grep -E 'C|cat' test.txt 将匹配到C或cat

grep -E '(C|c)at' test.txt 将匹配到Cat或cat

-E 扩展正则表达式

grep -i 忽略大小写

grep -o 只显示匹配导的东西

grep -v 显示未被匹配到的行




globbing:globbing很简单,顺便给出总结图。更形象。














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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值