grep命令简介:
此个命令根据模式,搜索文本,并将符合模式的文本行显示出来。包含匹配,
不是完全匹配。也就是说只要某一行有一部分匹配到就显示出来。
*延伸阅读:模式(pattern)是指文本字符和正则表达式的元字符组合而成匹配条件
1.命令格式:
grep [OPTIONS] PATTERN [FILE...]
grep -i ‘root‘ /etc/passwd
2.命令功能:
对文本进行搜索,将符合模式的文本行显示出来。
3.命令参数:
-i 查找时忽略大小写
--color 模式中关键字以高亮有颜色显示出来
-v 显示没有被模式匹配的选项
-o 只显示被模式匹配的字符串
支持正则表达式:
.:匹配任意单个字符
*:匹配其前面的字符任意次(包括0次)
.*:匹配任意长度的任意字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:digit:]数字 [:lower:]小写字母 [:upper:]大写字母 [:punct:]字符
[:space:]空格 [:alpha:]所有字母 [:alnum:]所有字母和数字
\?:匹配其前面的字符0次或1次 \表示转义
\(m,n\):匹配前面的字符至少m次,最多n次
\(m,\):匹配前面的字符至少m次
\(0,n):匹配前面的字符,最多n次
位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
^$: 空白行
\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现
分组:
\(\)把括号内的当着一个整体
\(ab\)*把ab当着一个整体
后向引用
\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2:引用第二个左括号以及与之对应的右括号所包括的所有内容
\3:引用第三个左括号以及与之对应的右括号所包括的所有内容
\n:引用第n个左括号以及与之对应的右括号所包括的所有内容
4.命令实例:
1、查找包含某些字符的所有行
grep "root" /etc/passwd
[[email protected] ~]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
2、grep --color 以高亮显示查找到的字符
可以把别名写入配置文档 vim ~/.bashrc1
# .bashrc
# User specific aliases and functions
alias rm=‘rm -i‘
alias cp=‘cp -i‘
alias mv=‘mv -i‘
alias grep=‘grep --color‘
3、grep ‘\([0-9]\).*\1$‘ /test/test1.txt 查找test1.txt文档中必须以前面第一个数字结尾的行
[[email protected] test]# grep ‘\([0-9]\).*\1$‘ /test/test1.txt
2who are you 2
4 youareringt4
5,he is 2tom2
7 eg is over 11
8 thanks you 1and1
[[email protected] test]# cat test1.txt
1,this is helloword! 此处没有以数字结尾
2who are you 2 此处匹配到
3,no 4 is not 2. 此处结尾是以.结尾所以未匹配到
4 youareringt4. 此处结尾是以.结尾所以未匹配到
4 youareringt4 此处匹配到,是以前面出现的数字4结尾
5,he is 2tom2 此处匹配到,是以前面出现的数字2结尾
5,he is 2tom2. 此处结尾是以.结尾所以未匹配到
6 tom is cat4,yes is 4. 此处结尾是以.结尾所以未匹配到
7 eg is over 11. 此处结尾是以.结尾所以未匹配到
7 eg is over 11 此处匹配到,是以前面出现的数字1结尾
8 thanks you 1and1 此处匹配到,是以前面出现的数字1结尾