https://developer.aliyun.com/article/885611?spm=a2c6h.24874632.expert-profile.311.7c46cfe9h5DxWK
简介: grep家族 =========================================== grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达的行 egrep:扩展的egrep,支持更多的正则表达式元字符 fgrep:固定grep(fixed grep),有时也被称作快速(fast grep),它按字面结束所有的字符,比如*就是原义,?就是?

文本处理: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详解的更多相关文章

  1. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  2. Linux 文本对比 diff 命令详解(整理)

    diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...

  3. Linux文本处理三剑客之grep及正则表达式详解

    Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...

  4. Linux文本处理三剑客之——grep

    一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...

  5. Linux 文本处理三剑客之grep

    文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...

  6. 三剑客基础详解(grep、sed、awk)

    目录 三剑客基础详解 三剑客之grep详解 1.通配符 2.基础正则 3.grep 讲解 4.拓展正则 5.POSIX字符类 三剑客之sed讲解 1.sed的执行流程 2.语法格式 三剑客之Awk 1 ...

  7. Linux文本处理三剑客之sed

    推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...

  8. 关于Linux文本处理“三剑客”的一些小操作。

    Linux文本处理“三剑客”,即grep.sed.awk,这是Linux中最核心 的3个命令. 一.首先做个简单的介绍: 1.awk:linux三剑客老大,过滤,输出内容,一门语言.NR代表行号. 2 ...

  9. Linux文件搜索命令locate、which、grep详解

    命令locate详解 命令locate,其基本功能是在文件资料库中可以快速的搜索系统文件,占用系统资源很少,例如:locate my.cnf 还可以使用locate -i [文件名],不区分大小写进行 ...

  10. ps -ef|grep详解 、kill与kill -9的区别

    ps -ef|grep详解 ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找 ...

随机推荐

  1. C++篇:第一章_变量和常量_知识点大全

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 注意:C++篇为本人手动将Word文档修改成Markdown格式(因为网上修改的 ...

  2. Kmesh内核级流量治理,服务转发性能提升50%+

    本文分享自华为云社区<DTSE Tech Talk | 第49期:Kmesh内核级流量治理,服务转发性能提升50%+!>,作者:华为云社区精选. 数据面时延开销,无法满足应用SLA诉求?内 ...

  3. 如果云是水滴,Kubernetes就是水滴管理平台

    摘要:云是由很多小水滴组成的,把每一个计算机想象成小水滴,联合起来就形成了云.一般水滴先出现,然后出现管理水滴的平台(如OpenStack,Kubernetes). 一.云计算–独立宇宙 1.云是由很 ...

  4. 云图说|华为HiLens云上管理平台 花样管理多种端侧设备

    摘要:华为HiLens作为端云协同多模态AI开发应用平台,支持对接和管理多种端侧计算设备,帮助用户开发多模态AI应用并下发到端侧设备,实现多场景的智能化解决方案. 本文分享自华为云社区<[云图说 ...

  5. 传统到敏捷的转型中,谁更适合做Scrum Master?

    摘要:本文主要讲述的是从传统到敏捷Scrum团队转型中,对Scrum Master这一角色的分析. 本文分享自华为云社区<传统到敏捷的转型中,谁更适合做Scrum Master?>,作者: ...

  6. Kubernetes(K8S) 介绍

    Master Api Server 统一入口,以 Restful 方式,交给 etcd 存储 Scheduler 节点调试,选择 Node 节点,做应用部署 Controller Manager 处理 ...

  7. schedule 定时运行 Python 函数

    安装 pip install schedule 例子 每x分钟运行一次 import schedule import time def job(): print("I'm working.. ...

  8. 【JAVA基础】Session使用

    Session使用 用户注册 详见: https://blog.csdn.net/maxiangyu_/article/details/124088948 BaseController package ...

  9. 智能制造之 SMT 产线监控管理可视化

    前言 随着<中国制造2025>的提出,制造业迎来了全新的发展机遇.更多的企业将制造业信息化技术进行广泛的应用,如 MES 系统.数字孪生以及生产管理可视化等技术的研究应用,已经成为社会各界 ...

  10. Element 动态表头渲染表格

    element 中的table表头动态渲染 https://blog.csdn.net/heixiuheixiu666/article/details/104705024/ Element 动态表头渲 ...