[转帖]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命令是查找 ...
随机推荐
- 创建service后,kubernetes会发生什么
本文分享自华为云社区<当创建一个service后,kubernetes会发生什么?>,作者:可以交个朋友. 一.Service介绍 1.1 Kubernetes为什么会引入service? ...
- Serverless: AI everywhere的下一块拼图
摘要:本文介绍华为云函数工作流(FunctionGraph)的灵活.速度,如何让开发人员提升工程效率,缩短TTM等 本文分享自华为云社区<华为云FunctionGraph函数工作流-- Serv ...
- 先收藏!关于Java类、接口、枚举的知识点大汇总
摘要:Java知识点精选之类.接口.枚举30问,算是比较基础的,希望大家一起学习进步. 整理了一些JAVA语言的在类.接口.枚举等方面的知识点以及大家常遇到的问题.希望能帮助到大家. Q: 各修饰符所 ...
- 一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!
摘要:本文介绍了图神经网络在学界和业界的发展情况,并给出了图神经网络的基本概念与表示形式,总结了图神经网络的变体,最后介绍了华为云图神经网络框架. 本文分享自华为云社区<干饭人,干饭魂,搞懂图神 ...
- PPT 动画-文字渐入
插入文字,居中对齐 选中文字,将不透明度调成100%,让文字消失不见
- ABAP使用异步远程RFC实现并行处理
1.使用场景 当开发复杂报表,需要处理大量数据,不管怎么优化计算和查询语句,程序的运行效率还是达不到用户要求,怎么办? 为了解决这个问题,就需要程序实现并行处理. 本文档就是通过异步调用远程RFC的办 ...
- Mac 配置 OpenCV C++ 版本
今天紀錄一下如何在 Mac 上安裝 OpenCV for C++ 開發環境 使用 Brew 安装,pkgconfig 检测,2023.5.17 Mac x86 ( Intel ) , Mac M1 ( ...
- 探究Presto SQL引擎(2)-浅析Join
作者:vivo互联网技术-Shuai Guangying 在<探究Presto SQL引擎(1)-巧用Antlr>中,我们介绍了Antlr的基本用法以及如何使用Antlr4实现解析SQL查 ...
- 【RK3399】2.制作ubuntu20.04 roomfs
firefly自带的文件系统,由于缺少一些基本功能模块,因此,我们可以自己手动制作一个ubuntu20.04的文件系统. 下载Ubuntu根文件系统 http://cdimage.ubuntu.com ...
- java基础-java面向对象-02-day09
目录 1. 封装 2. 继承 2.1 什么是方法的重写 2.2 super 2.3 object详解 2.4 equals方法 3. 多态 4. final修饰符 5.抽象类 6. 接口 7. 内部类 ...