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>转义字符
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很简单,顺便给出总结图。更形象。
新闻热点
疑难解答