[转帖]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命令是查找 ...
随机推荐
- GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合
本文分享自华为云社区<GaussDB(for Redis)企业级特性揭秘之多租户管理>,作者: GaussDB 数据库 . 华为云GaussDB(for Redis)持续完善企业级增强特性 ...
- 谁说Redis不能存大key
摘要:推荐使用GaussDB(for Redis)搞定"大key"存储,从根本上解决社区版Redis使用风险. 本文分享自华为云社区<华为云GaussDB(for Redis ...
- SQL Server 事务执行、回滚
MySQL 事务回滚.在执行删除.更新等操作时,防止误操作 生产环境更新数据时必用 begin tran --开启事务 begin--先在事务中 执行 UPDATE Sys_User SET Name ...
- Error unprotecting the session cookie.The payload was invalid.
.Net Core 3.0 warn: Microsoft.AspNetCore.Session.SessionMiddleware[7] Error unprotecting the session ...
- web自动化-selenium携带cookie免密登录
在我们做web自动化的时候,经常会遇到含有登录的页面,我们必须登录之后才能够对我们想要操作的页面元素进行定位,也就是说所有的操作都在登录前提下,其实没必要每次请求都先登录,当我们登录成功了,会在coo ...
- 【django-vue】课程表数据录入 课程分类接口 所有课程接口 课程详情接口 所有章节接口 课程列表前端 课程详情前端
目录 上节回顾 APSchudler 双写一致性 今日内容 1 课程表数据录入 2 课程分类接口 2.1 路由 2.2 序列化类 2.3 视图类 3 所有课程接口(过滤,排序) 3.1 表模型 3.2 ...
- BBS项目(一): 表设计 注册功能 登录功能 生成随机验证码
目录 表设计 1.确定表的数量 2.确定表的基础字段 自关联字段 3.确定表的外键字段 表关系图 项目初建流程备忘 注册功能 登录功能 生成随机验证码 表设计 # 仿造博客园项目 核心:文章的增删改查 ...
- slot-具名插槽
定义组件:NamedSlot组件 <div class=""> <header> <slot name="header">& ...
- P4913【橙】
蕾姆了,上一道题做的好烦,结果直接把上一题的代码稍微改改就直接五分钟做出了另一道题,就是这道橙题.虽然只是一道橙题,但上一题代码得以复用显得自己没浪费那么多时间,显得自己还是有不少收获的.心里平摊多了 ...
- TOEFL | Reading · 题型总结
目录 直接引用 - 直译题(不要读文章) 直接引用 - why 题(需要细读题干) 直接引用 - 其他(需要细读题干) 理解题(出现最多,需要细读题干) 转义题(不要读题干) 添加句子题(不要读题干) ...