本文作者:阿豪

正则介绍_grep上,grep中,grep下

阿豪 2020-01-31 405
正则介绍_grep上,grep中,grep下摘要: 正则介绍_grep(上)正则就是一串有规律的字符串掌握好正则对于编写shell脚本有很大帮助各种编程语言中都有正则,原理是一样的本章将要学习grep/egrep、sed、awk (...

正则介绍_grep(上)

正则就是一串有规律的字符串

掌握好正则对于编写shell脚本有很大帮助

各种编程语言中都有正则,原理是一样的

本章将要学习grep/egrep、sed、awk (网页三剑客)

grep

# grep "nologin" passwd

image.png

//查看一个关键字有多少行

# grep -c "nologin" passwd

//显示行号

# grep -n "nologin" passwd

image.png

过滤出不区分大小写

# grep -ni "nologin" passwd

image.png

过滤不包含关键字的行

# grep -vni "nologin" passwd

image.png

遍历过来所有目录

# grep -rn "nologin" /etc/

-A 后面跟数字,过滤出符合要求的行以及下面n行

-B 同上,过滤出符合要求的行以及上面n行

-C 同上,同时过滤出符合要求的行以及上下各n行

grep(中)

显示包含root的行号

# grep -n 'root' /etc/passwd

显示不包含root的行号.

# grep -nv 'nologin' /etc/passwd

过滤出0-9中的任意个字符

# grep '[0-9]'/etc/inittab

过滤取饭出0-9中的任意个字符

# grep -v '[0-9]' /etc/inittab

过滤出已#号开头的行

# grep -n "^#" /etc/inittab

过滤出不已#开头的行

# grep -v '^#' /etc/inittabgrep -v '^#' /etc/inittab|grep -v  '^$'

过滤非a-zA-z开头的

#  grep '^[^a-zA-Z]' passwd

image.png

grep(下)

过滤包含r或者o的任意的一个字符

# grep 'r.o' test.txt

*表示*号前面的字符循环多次匹配,可以0次循环

#  grep 'oo*' passwd

匹配所有字符

# grep '.*' test.txt

匹配一个范围,特殊符号记得要脱衣

# grep 'o\{2\}' /etc/passwd

匹配一个范围,特殊符号记得要脱衣,其中grep -E 跟egrep是一样的

# grep -E 'o{2}' /etc/passwdegrep 'o{2}' /etc/passwd

过滤表示一次或者多次,+号从1开始

# egrep 'o+' /etc/passwd

匹配表示?前面的字符0次或者1次重复出现

# egrep 'oo?' /etc/passwd

匹配root或者nologin

# egrep 'root|nologin' /etc/passwd

匹配oo两次那么就是4个o

egrep '(oo){2}' /etc/passwd

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

# grep -r --include="*.php" 'eval' /data/


文章版权及转载声明

作者:阿豪本文地址:https://www.ahaoyw.com/article/67.html发布于 2020-01-31
文章转载或复制请以超链接形式并注明出处阿豪运维

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏