Linux-文本处理三剑客grep详解

简介: grep家族===========================================grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达的行egrep:扩展的egrep,支持更多的正则表达式元字符fgrep:固定grep(fixed grep),有时也被称作快速(fast grep),它按字面结束所有的字符,比如*就是原义,?就是?

文本处理:grep

grep家族


===========================================


grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达的行


egrep:扩展的egrep,支持更多的正则表达式元字符


fgrep:固定grep(fixed grep),有时也被称作快速(fast grep),它按字面结束所有的字符,比如*就是原义,?就是?

1.grep命令格式

grep [选项] PATTERN filename filename…


[root@localhost my_scripts]# grep ‘jxl’ /etc/passwd;echo $?


[root@localhost my_scripts]# grep ‘jxl’ /etc/test;echo $?


[root@localhost my_scripts]# grep “bash shell”/etc/test;echo $?


找到: grep返回的退出状态为0


没找到: grep返回的退出状态为1


找不到指定文件: grep返回的退出状态为2


grep程序的输入可以来自标准输入或管道,而不仅仅是文件


ps aux | grep ‘sshd’ //过滤包含sshd的


grep ‘jxl’ /etc/passwd/ etc/shadow /etc/group //在多个文件检索


ll | grep ‘^d’ //检索是目录的

2.grep使用的元字符

grep:   使用基本元字符集 ^,$,[],*,.,[],[^],\<\>,\(\),\{\},\+,\|
egrep(或grep -E):使用扩展元字符集?,+,{},(),|
注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
\w    所有字母与数字,称为字符'[a-zA-Z0-9]*ve'  'l[\w*ve]'
\W    所有字母与数字之外的字符,称为非字符'love[^a-zA-Z0-9]+'   'love\W+'
\b    词边界   '\<love\>'

3.grep实例

grep -E 或者egrep

egrep 'NW' datafile       //过滤nw的
egrep 'NW' d*         //在开头是d的文件中匹配
egrep '^n' datafile       //匹配n开头的
egrep '4$'  datafile      //以4结尾的行
egrep TB savage datafile    //在saveage datafile中找TB
egrep 'TB savage' datafile    //在datafile中找TB savage
egrep '5\..' datafile   //匹配5再跟一个.在跟一个任意字符的行
egrep '\.5' datafile    //匹配.在跟一个5
egrep '^[we]' datafile    //匹配开头是w或者e行
egrep '[^0-9]' datafile     //不是0-9开头的行
egrep '[A-Z][A-Z][A-Z]' datafile    //匹配A-Z其中一个在跟A-Z其中一个再跟A-Z其中一个
egrep 'ss*' datafile //匹配s出现0次或多次
egrep '[a-z{9}]' datafile   //匹配相同字母出现9次
egrep '\<north' datafile    //匹配以north开头的词
egrep '\<north\>' datafile    //以north开头和结尾的词
egrep '\<[a-r].*n\>' datafile //匹配以a-r再跟任意一个字符出现0次到多次再跟一个n结尾的词
egrep '^n\w*\W' datafile  //匹配一个n开头并且在跟任意字符出现0次到多次再跟特殊字符
egrep '\bnorth\b' datafile  //匹配north开头和结尾的词
egrep 'NW|EA' datafile    //匹配NW和EA的行
egrep '3+' datafile   //匹配3出现一次或多次
egrep '2\.?[0-9]' datafile    //匹配2再跟一个.出现0次或1次再跟0-9任意一个字符的行
egrep '(no)+' datafile    //匹配no出现一次到多次,nononono这种
egrep 's(h|u)' datafile   //匹配sh或者su
egrep 'sh|u' datafile   //匹配sh或u

4.grep选项

-i    忽略大小写
-l    只列出匹配行所在的文件名
-n    在每一行前面加上他在文件中的相对行号
-c    显示成功匹配的行数
-s    禁止显示文件不存在或者文件不可读的错误信息
-q    静默--quiet,--silent不输出匹配的信息
-v    反向查找,只显示不匹配的行
-R    等同于-r 递归针对目录
--color 颜色
-o    只显示匹配的内容不会显示整行,值显示查找的内容,例如查找if结果只有if
-B    匹配行的前几行
-A    匹配行的后几行
-C    匹配行的前后几行
grep -R 'if' *        //递归匹配if
grep  '^[a-Z0-9]' /etc/vsftpd/vsftpd.conf   //过滤字符开头的行
grep -v '^#' /etc/vsftpd/vsftpd.conf
grep -c -v '^#' /etc/vsftpd/vsftpd.conf
grep  -c '^[a-Z0-9]' /etc/vsftpd/vsftpd.conf
grep  -n '^[a-Z0-9]' /etc/vsftpd/vsftpd.conf
grep  -R -l '^[a-Z0-9]'   *
grep --help | grep '\-v'
useradd --help | grep '\-u'
egrep '([0-9]{1,3}.){3}([0-9]{1,3})'  /etc/sysconfig/network-scripts/ifcfg-ens33  //匹配组字符0-9并且出现1次到三次的然后连续匹配3次再跟一个0-9出现一次到三次的
grep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-ens33 | egrep -o '([0-9]{1,3}.){3}([0-9]{1,3})'
grep -B2 'root' /etc/passwd
grep -A2 'root' /etc/passwd
grep -C2 'root' /etc/passwd
目录
相关文章
|
2月前
|
Linux
认识Linux指令之 “find grep” 命令
认识Linux指令之 “find grep” 命令
认识Linux指令之 “find grep” 命令
|
2月前
|
Linux Shell Perl
Linux下的Shell基础——文本处理工具(五)
Linux下的Shell基础——文本处理工具(五)
31 1
Linux下的Shell基础——文本处理工具(五)
|
3月前
|
Linux
【linux】find、xargs、grep 联合查找文件内容
【linux】find、xargs、grep 联合查找文件内容
79 1
|
4月前
|
Linux 测试技术
软件测试/测试开发|一文详解Linux grep命令
软件测试/测试开发|一文详解Linux grep命令
57 1
|
4月前
|
SQL Linux 应用服务中间件
Linux - 管道(|)和grep 命令
Linux - 管道(|)和grep 命令
58 0
|
4月前
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
65 2
|
1月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
52 1
性能工具之linux三剑客awk、grep、sed详解
|
13天前
|
Linux
Linux 指令|date|cal|find|grep|热键
Linux 指令|date|cal|find|grep|热键
|
4月前
|
Linux Shell 开发工具
Linux tail & cat & grep 命令详解
Linux tail & cat & grep 命令详解
226 0
|
1月前
|
弹性计算 Linux Shell
Linux技术基础(2)——文本处理
文本处理实验:探索[Vim](https://developer.aliyun.com/adc/scenario/aced2264751f4866a8340de4cf9db0fa)的命令、输入和底线模式,学习文本编辑快捷操作,如光标移动、删除、复制和粘贴。了解如何使用底线命令模式进行文件保存、退出及搜索替换。同时,掌握`cat`、`more`、`less`、`head`、`tail`等文本查看命令,以及`stat`、`wc`、`file`、`diff`等文件处理命令。利用`grep`、`sed`、`awk`和`cut`进行文本搜索、替换和分析。