[转帖]Linux-文本处理三剑客grep详解
- https://developer.aliyun.com/article/885611?spm=a2c6h.24874632.expert-profile.311.7c46cfe9h5DxWK
文本处理: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
[转帖]Linux-文本处理三剑客grep详解的更多相关文章
- Linux文本编译工具VIM详解
Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...
- Linux 文本对比 diff 命令详解(整理)
diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...
- Linux文本处理三剑客之grep及正则表达式详解
Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...
- Linux文本处理三剑客之——grep
一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...
- Linux 文本处理三剑客之grep
文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...
- 三剑客基础详解(grep、sed、awk)
目录 三剑客基础详解 三剑客之grep详解 1.通配符 2.基础正则 3.grep 讲解 4.拓展正则 5.POSIX字符类 三剑客之sed讲解 1.sed的执行流程 2.语法格式 三剑客之Awk 1 ...
- Linux文本处理三剑客之sed
推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...
- 关于Linux文本处理“三剑客”的一些小操作。
Linux文本处理“三剑客”,即grep.sed.awk,这是Linux中最核心 的3个命令. 一.首先做个简单的介绍: 1.awk:linux三剑客老大,过滤,输出内容,一门语言.NR代表行号. 2 ...
- Linux文件搜索命令locate、which、grep详解
命令locate详解 命令locate,其基本功能是在文件资料库中可以快速的搜索系统文件,占用系统资源很少,例如:locate my.cnf 还可以使用locate -i [文件名],不区分大小写进行 ...
- ps -ef|grep详解 、kill与kill -9的区别
ps -ef|grep详解 ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找 ...
随机推荐
- KubeEdge在国家工业互联网大数据中心的架构设计与应用
摘要:在18年的时候,工信部开展了一个叫国家创新发展工程,这个工程中提出了要建立一个国家工业大数据中心,中国移动在其中承担了边缘协同与数据采集相关功能的研发.本文将从该项目背景下面临的问题与挑战.技术 ...
- 从架构设计理念到集群部署,全面认识KubeEdge
摘要:本篇文章将从KubeEdge架构设计理念.KubeEdge代码目录概览.KubeEdge集群部署三方面带大家认识KubeEdge. KubeEdge即Kube+Edge,顾名思义就是依托K8s的 ...
- 一文带你了解华为云GaussDB的五大黑科技
摘要:在华为开发者大会2021(HDC·Cloud)中,华为云数据库多位技术专家分享了GaussDB系列数据库全新5大黑科技. 4月24-26日,华为开发者大会2021(HDC·Cloud)在深圳隆重 ...
- 探索开源工作流引擎Azkaban在MRS中的实践
摘要:本文主要介绍如何在华为云上从0-1搭建azkaban并指导用户如何提交作业至MRS. 本文分享自华为云社区<开源工作流引擎Azkaban在MRS中的实践>,作者:啊喔YeYe. 环境 ...
- 一个Camel Multicast组件聚合策略问题的解决过程
摘要:本文通过案例,发现了一个Camel Multicast组件聚合策略相关的问题.通过查看Camel源代码,找到了问题原因并给出了解决方案.希望本文可以帮助到遇到同样问题的Camel用户. 本文分享 ...
- Taro架构构析(2):Taro 设计思想及架构
从之前微信公众号的开发经验来说,以及腾讯开放平台的接入 等经验来看,一直对腾讯的开放文档 有心理阴影. 微信小程序从文件组织上看,一个小程序页面或组件,需要同时包含 4 个文件:脚本逻辑.样式.模板以 ...
- 最后一天,CDMP数据治理认证高分训练营(9-10月)开放报名!
大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人. 首先告诉大家一个好消息,在大家共同的努力下,我们的CDMP国际数据治理认证训练营(7-8月)基本收官, ...
- Axure 母版红色怎么去除?
视图 => 遮罩 => 母版 勾选去掉
- mit6.s081 lab2: system calls
1.system call tracing(moderate) 要求:创建一个系统调用来实现跟踪特性,它采用一个参数来指定跟踪哪一个系统调用,例如:跟踪fork系统调用,程序调用trace(1< ...
- redis之列表 redis之hash redis其他操作 redis管道 django中使用redis celery介绍和安装 celery快速使用 celery包结构
目录 昨日回顾 今日内容 1 redis之列表 2 redis之hash 3 redis其他操作 4 redis 管道 5 django中使用redis 6 celery介绍和安装 7 celery快 ...