文档章节

0409 第十一次课:三剑客-grep

w
 wxy丶
发布于 04/08 15:07
字数 843
阅读 12
收藏 3
PHP

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

正则_grep

一、正则介绍

  • 正则就是一串有规律的字符串,包括各种特殊符号
  • 掌握正则对于编写shell有很大帮助
  • 各种编程中都有正则,原理是一样的

二、grep

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

  • grep用法

    grep [-cinvrABC] 'word' filename

    参数说明:

    参数 说明
    -c 统计
    -n 显示行
    -i 不区分大小写
    -r 遍历所有的子目录
    -v 取反
    -A 后面跟数字,过滤出符合要求的行及下面n行
    -B 后面跟数字,过滤出符合要求的行及上面n行
    -C 后面跟数字,过滤出符合要求的行及上下n行
  • 常用示例

    1、匹配字符并显示行号

    grep -n "root" /etc/passwd

    2、匹配非"root"行并显示行号

    grep -vn "root" /etc/passwd

    3、匹配“root”行,并显示下面两行。

    grep -A2 -n 'root' /etc/passwd

    4、匹配“root”行,并显示上面两行

    grep -B2 -n 'root' /etc/passwd

    5、匹配“root”行,并显示上下两行。

    grep -C2 -n 'root' /etc/passwd

    6、区分不大小写显示

    grep -i "A" 1.txt

    7、遍历所有子目录匹配

    查找root目录下所有包含“root”的文件并显示出来

    grep -r "root" /root/

  • grep正则操作

    1、匹配带数字的行

    grep [0-9] /etc/passwd

    [0-9]就是0到9的意思

    2、匹配以非“#”开头的行

    grep -v '^#' 1.txt

    3、匹配所有非数字

    grep '[^0-9]' 2.txt

    把^符号放在[]中就是非的意思。

    4、匹配所有非数字开头的行

    grep '^[^0-9]' 2.txt

    5、匹配所有“rxot”的行,”"."代表任意一个字符

    grep "ro.t" 1.txt

    6、多个字母匹配

    grep 'o*o' passwd

    ""代表左边的字符重复0-n次,也就是一个o也会匹配,ooo....多个也会匹配

    7、贪婪匹配

    grep '.*' 1.txt

    "."表示贪婪匹配,所有的都会被匹配。“.”表示一个任意字符,“”代表*左边的字符重复0-n次,加在一起就是匹配所有的就叫贪婪匹配。

    8、指定字符出现次数匹配

    grep 'o\{2\}' 1.txt

    {2}表示出现的次数,o是指指定的字符。\表示脱意

  • egrep

    在grep中使用+ {} () | 需要时\进行脱意。不想脱意可以使用 egrep 或者 grep -E

  • 其它一些符号使用

    示例:

    1、()组合字符

    egrep '(oo){2}' 1.txt

    ()表示组合的意思

    2、“+”匹配

    +类似于*,不同的是+是1-n次,*是0-n次,如下图单个o不会被匹配到

    3、“?”匹配

    ?表示左边字符的重复次数为0或者1

    grep 'o\?t' 1.txt

    4、 “|” 符号或者匹配

    '|'表示或者,比如root|tes就是匹配‘root’或者‘test’的意思

    grep -E 'root|test' 1.txt

  • 扩展

    过滤一个目录下所有*.php文档中含有eval的行。

    grep -r --include "*.php" 'eval' /usr/local/php/

© 著作权归作者所有

w
粉丝 13
博文 66
码字总数 75691
作品 0
私信 提问
awk的基本概念,基础用法和高级用法

awk: 文本处理三剑客:grep系,sed,awk grep系:grep,egrep,fgrep,基于PATTERN进行文本过滤; sed:流编辑器,逐行编辑器;模式空间,保持空间; awk:报告生成器;格式化文档输出;...

狐狸和鳄鱼
2018/04/20
0
0
2017-12-9Linux基础知识(16)文本处理工具

我们简述一下上一章的内容,主要讲的是bash编程的基础,介绍了其编程类型,以及介绍了编程语言的类型什么是过程式编程和对象式编程,然后我们编写了第一个脚本程序以及如何运行的方式有那些,...

刘祥宇
2017/12/11
0
0
linux常用命令

1、 帮助命令 man:外置命令时用man显示帮助信息 help:内置命令时用help显示帮助信息 注意:一个命令是否为内置可以用enable+命令进行查看 2、 文件和目录操作命令 mv:移动目录或者文件,也...

liucd12
2017/11/17
0
0
Linux_Linux命令总结01

mkdir单个或者批量创建多个目录(常用参数:-p递归创建目录) touch创建单个或者批量创建多个文件 cp拷贝文件或目录(常用参数:-p保持属性 -a或-r拷贝目录) mv移动或剪切文件或目录,也可改...

Mr_LiuT
2017/11/09
0
0
Linux中一个文件10行内容,如何输出5-8内容到屏幕

题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: 我们的任务是取5-8行输出: 第一种方法: 第二种方法: 第三种方法: 第四种方法: 其本质就是...

heqiuyu2008
2017/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql免安装

参考:http://blog.csdn.net/qq_28569585/article/details/79072805 [mysqld]#设置mysql密码为空#skip-grant-tables#设置3306端口 port = 3306# 设置mysql的安装目录 basedir=E...

秋默
9分钟前
2
0
立足于SpringCloud.H + Netflix-Ribbon + Hystrix断路器(9)

《SpringCloud.H心法总纲》 继续上一篇,接下来Springcloud配置Netflix-Ribbon集成Hystrix断路器的功能。 1、添加依赖 <!--使用hystrix,测试断路器--><dependency> <groupId>org.spr......

木九天
10分钟前
2
0
Dropbox怎么共享文件?Dropbox共享文件操作

Dropbox网盘是国外的一项云存储服务,这意味着即使您使用的是其他设备,您也可以将文件复制到云中并在以后访问它们,目前支持PC、Android和MAC三大平台,为用户带来最精准的资源传输工作。就...

坚果云
12分钟前
5
0
Vant Weapp 1.0 正式版发布

1.0 来了 2018 年 8 月 11 日,我们发布了 Vant Weapp 的首个版本。16 个月以来,我们收到了 27 位开发者贡献的 1000 多次提交,也处理了 1200 多个 issue,发布了 50 多个版本。Github 的 ...

有赞coder
14分钟前
3
0
VCF文件格式详解

VCF文件全称为Variant Call Format,表示基因组的变异信息,通常为GATK和Samtools软件处理所得到。 VCF文件大致可以分为两个部分: 1、以##开头的头文件信息 ##fileformat=VCFv4.2##FILTER...

悲催的古灵武士
15分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部