[转帖]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命令是查找 ...
随机推荐
- 在线编辑Excel——插入图表
本文内容介绍如何通过Excel在线编辑器--Spire.Cloud Excel来实现图表插入,插入图表时,可插入常见的柱状图.饼图.折线图.条形图.面积图.散点图.股价图等.这里挑选几种图表来展示插入 ...
- 云图说|分钟级构建业务大屏——Astro大屏应用
本文分享自华为云社区<[云图说]第271期 Astro Canvas一站式数据可视化开发,分钟级构建业务大屏>,作者:阅识风云 . Astro大屏应用(Astro Canvas)是Astr ...
- 华为云企业级Redis揭秘第17期:集群搭载多DB,多租隔离更降本
摘要:GaussDB(for Redis)支持真正可扩展的多DB,轻松实现降本增效. 本文分享自华为云社区<华为云企业级Redis揭秘第17期:集群搭载多DB,多租隔离更降本>,作者: G ...
- PPT 客户提案PPT应该怎么样改
PPT 客户提案PPT应该怎么样改
- Web 目录文件浏览配置
IIS 配置目录浏览 在目录下 Web.config 下添加一句: <directoryBrowse enabled="true"/> <?xml version ...
- Bug定级实例
*1级,**系统崩溃* *定义:*严重阻碍测试和开发工作 *对应**优先级**:**最高* *具体可分为:* 1.功能完全没有实现 2.应用闪退/崩溃无法运行 3*.应用必现安全模式,无法运行* 4. ...
- OLAP引擎也能实现高性能向量检索,据说QPS高于milvus!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力"异军突起& ...
- 聊聊时下火热的 AIGC 与 Web3
近期,AI 已经开始影响到了音乐行业,在 B 站搜索"AI 孙燕姿",从流行歌曲到摇滚,从周杰伦到王力宏,没有 AI 孙燕姿驾驭不了的歌曲. 有用户评论:"我感觉 AI ...
- 它来了!真正的 python 多线程
哈喽大家好,我是咸鱼 几天前,IBM 工程师 Martin Heinz 发文表示 python 3.12 版本回引入"Per-Interpreter GIL",有了这个 Per-I ...
- 什么是全同态加密(FHE)中的自举(Bootstrapping)?
PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. 全同态加密(Fully Homomorphic Encrypti ...