[转帖]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命令是查找 ...
随机推荐
- C++篇:第一章_变量和常量_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 注意:C++篇为本人手动将Word文档修改成Markdown格式(因为网上修改的 ...
- Kmesh内核级流量治理,服务转发性能提升50%+
本文分享自华为云社区<DTSE Tech Talk | 第49期:Kmesh内核级流量治理,服务转发性能提升50%+!>,作者:华为云社区精选. 数据面时延开销,无法满足应用SLA诉求?内 ...
- 如果云是水滴,Kubernetes就是水滴管理平台
摘要:云是由很多小水滴组成的,把每一个计算机想象成小水滴,联合起来就形成了云.一般水滴先出现,然后出现管理水滴的平台(如OpenStack,Kubernetes). 一.云计算–独立宇宙 1.云是由很 ...
- 云图说|华为HiLens云上管理平台 花样管理多种端侧设备
摘要:华为HiLens作为端云协同多模态AI开发应用平台,支持对接和管理多种端侧计算设备,帮助用户开发多模态AI应用并下发到端侧设备,实现多场景的智能化解决方案. 本文分享自华为云社区<[云图说 ...
- 传统到敏捷的转型中,谁更适合做Scrum Master?
摘要:本文主要讲述的是从传统到敏捷Scrum团队转型中,对Scrum Master这一角色的分析. 本文分享自华为云社区<传统到敏捷的转型中,谁更适合做Scrum Master?>,作者: ...
- Kubernetes(K8S) 介绍
Master Api Server 统一入口,以 Restful 方式,交给 etcd 存储 Scheduler 节点调试,选择 Node 节点,做应用部署 Controller Manager 处理 ...
- schedule 定时运行 Python 函数
安装 pip install schedule 例子 每x分钟运行一次 import schedule import time def job(): print("I'm working.. ...
- 【JAVA基础】Session使用
Session使用 用户注册 详见: https://blog.csdn.net/maxiangyu_/article/details/124088948 BaseController package ...
- 智能制造之 SMT 产线监控管理可视化
前言 随着<中国制造2025>的提出,制造业迎来了全新的发展机遇.更多的企业将制造业信息化技术进行广泛的应用,如 MES 系统.数字孪生以及生产管理可视化等技术的研究应用,已经成为社会各界 ...
- Element 动态表头渲染表格
element 中的table表头动态渲染 https://blog.csdn.net/heixiuheixiu666/article/details/104705024/ Element 动态表头渲 ...