什么是正则:

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

正则三剑客:

grep/egrep (egrep是grep的扩展),sed, awk

grep

grep过滤指定关键词

[root@localhost grep]# grep 'nologin' passwd

-c 行数

[root@localhost grep]# grep -c 'nologin' passwd

15

-i 不区分大小写

[root@localhost grep]# grep -i 'nologin' passwd

-n 显示行号

[root@localhost grep]# grep -n 'nologin' passwd

-v 取反

把除了nologin外的所有

[root@localhost grep]# grep -vin 'nologin' passwd

-r遍历子目录和孙目录

[root@localhost grep]# grep -r 'root' /etc/

可以把过滤到的字符串重定向到文件中,然后从文件中查找相应的字符串

[root@localhost grep]# grep -r 'root' /etc/  > /tmp/grep.log

[root@localhost grep]# grep passwd /tmp/grep.log

/etc/passwd:root:x:0:0:root:/root:/bin/bash

/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin

/etc/passwd-:root:x:0:0:root:/root:/bin/bash

/etc/passwd-:operator:x:11:0:operator:/root:/sbin/nologin

/etc/postfix/main.cf:# the system passwd file in the chroot jail is just not practical.

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

例如当前符合要求的行,以及下面的n行

[root@localhost grep]# grep  -nA2 'root' passwd

1:root:x:0:0:root:/root:/bin/bash

2-bin:x:1:1:bin:/bin:/sbin/NOLOGIN

3-daemon:x:2:2:daemon:/sbin:/sbin/nologin

--

10:operator:x:11:0:operator:/root:/sbin/nologin

11-games:x:12:100:games:/usr/games:/sbin/nologin

12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

-B 也是一样,后面跟数字,列出符合要求的当前行,以及行上面的n行

[root@localhost grep]# grep -nB2 'root' passwd

1:root:x:0:0:root:/root:/bin/bash

--

8-halt:x:7:0:halt:/sbin:/sbin/halt

9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

10:operator:x:11:0:operator:/root:/sbin/nologin

-C 也是一样,后面跟数字,列出符合要求的当前行,以及行上面n行和行后面n

[root@localhost grep]# grep -nC2 'root' passwd

1:root:x:0:0:root:/root:/bin/bash

2-bin:x:1:1:bin:/bin:/sbin/NOLOGIN

3-daemon:x:2:2:daemon:/sbin:/sbin/nologin

--

8-halt:x:7:0:halt:/sbin:/sbin/halt

9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

10:operator:x:11:0:operator:/root:/sbin/nologin

11-games:x:12:100:games:/usr/games:/sbin/nologin

12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

显示文件中的数字(红色高亮显示数字)

[root@localhost grep]# grep '[0-9]' passwd

不显示文件中带有数字的字符

grep -v '[0-9]' passwd

-n是显示行数,-v取反,意思是不显示数字的,并且显示行数。

[root@localhost grep]# grep  -vn  '[0-9]' /etc/inittab

以井号开头的行:

'^#'

显示以井号开头的行

[root@localhost grep]# grep -n '^#' inittab

显示不以井号开头的行:

grep  -nv   '^#' inittab

[root@localhost grep]# grep -nv '^#' inittab

9:jhsdjhsajdhjashdj

显示非数字的字符:非数字字符高亮

[root@localhost grep]# grep '[^0-9]' inittab

显示非数字开头的行:

[root@localhost grep]# grep '^[^0-9]' inittab

^ 放到[]方括号里面意思是取反,^放到开头意思是以什么字符开头。

grep 'r.o' 表示  . 点表示任意一个字符

[root@localhost grep]# grep 'r.o' passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

grep ‘o*o’        * 号 表示o o中间n个字符

[root@localhost grep]# grep  'o*o' passwd

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

grep   '.*' 会匹配所有字符。    .表示任意一个字符,*表示所有字符

[root@localhost grep]# grep  'xiaobo.*' passwd

xiaobo:x:1000:1000::/home/xiaobo:/bin/bash

grep  'o\{2\}'  passwd;   \表示脱义;

‘o\{2\}’表示o出现两次。

[root@localhost grep]# grep  'o\{2\}' passwd

root:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

'o\{0,3\}' 从0到3都匹配,就是说o出现0次、1次、2次、3次;

[root@localhost grep]# grep 'o\{0,3\}' passwd

去掉脱义符,用egrep 'o{2}' passwd 表示o出现两次

[root@localhost grep]# egrep 'o{2}' passwd

root:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

也可以用 grep  -E  'o{2}' passwd

[root@localhost grep]# grep  -E 'o{2}' passwd

root:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

grep  -E '(oo){2}'  passwd 表示出现4个o

[root@localhost grep]# grep  -E 'o{4}' passwd

ooooqq

osdaoooo

grep    'o\+o' passwd    +加号 表示1个或者多个o

[root@localhost grep]# grep 'o\+o' passwd

root:x:0:0:root:/root:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

ooooqq

osdaoooo

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

不脱义,用egrep

egrep  'o+o' passwd

epgrep  'o+t'  passwd

[root@localhost grep]# egrep 'o+t' passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

egrep 'o?t'  passwd           ?问号表示0或1个 问号前面的字符

[root@localhost grep]# egrep 'o?1o' passwd

postfix:x:89:89::/var/spool/postfix:/sbin/n1ogin

cho1orony:x:998:996::/var/lib/chrony:/sbin/nologin

grep -E   'root|nologin' passwd  匹配root或者nologin字符

[root@localhost grep]# grep -E 'root|nologin' passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:2:2:daemon:/sbin:/sbin/nologin

不区分大小写 -i

grep -Ei   'root|nologin' passwd  匹配root或者nologin字符

正则grep的更多相关文章

  1. 正则grep 使用介绍

    第6周第3次课(4月25日) 课程内容: 9.1 正则介绍_grep上9.2 grep中9.3 grep下扩展把一个目录下,过滤所有*.php文档中含有eval的行grep -r --include= ...

  2. shell脚本-正则、grep、sed、awk

    ----------------------------------------正则---------------------------------------- 基础正则 ^word ##搜索以w ...

  3. 通过grep来进行日志分析,grep -C和配合awk实际对catalina.out使用案例

    本文介绍通过grep来进行日志分析,主要介绍grep -C和配合awk实际对catalina.out使用案例 grep可以对日志文件进行筛选,统计,查询,快速定位bug. 首先,你的日志需要比较规范, ...

  4. info grep半翻译加整理

    内容来源基本上是整理info grep而来,当然只整理了关于用法的部分.有些地方给出了些解释,算是对grep的一个细节概述吧. 1.1 grep选项 grep家族:grep -G或者grep使用基本正 ...

  5. 正则表达式与grep

    一.回溯引用 1.将页面中合法的标题找出来,使用回溯引用匹配 (需要使用 -E 或 -P 来扩展grep语法支持) 2.查找连续出现的单词 二.前后查找 (grep 只能使用 -P 选项) 1. 向前 ...

  6. awk\sed\grep 补充

    # awk\sed\grep 补充 以上命令中字符 / 在sed中作为定界符使用,也可以使用任意的定界符 sed's:test:TEXT:g' sed's|test|TEXT|g' 定界符出现在样式内 ...

  7. grep和sed匹配多个字符关键字的用法

    GNU sed和UNIX sed 写法不一样 匹配多个关键词,打印出匹配的行,效果类似于 grep grep hello\|world file > output 或者用扩展正则 grep -E ...

  8. sed实战、find实战、grep实战

    1.find实战 # 删除指定文件(三种方法) find /data/ -type f -name "*.log" -exec rm {} \; find /data/ -type ...

  9. 正则表达式grep学习(一)

    文本处理三剑客grep       文本过滤sed       流过滤awk       格式处理 正则表达式就是一些特殊字符组成的模式,赋予了他特定的含义 在大多数程序里,正则表达式都被置于两个正斜 ...

随机推荐

  1. java 多线程 30: 多线程组件之 CyclicBarrier

    CyclicBarrier 接着讲多线程下的其他组件,第一个要讲的就是CyclicBarrier.CyclicBarrier从字面理解是指循环屏障,它可以协同多个线程,让多个线程在这个屏障前等待,直到 ...

  2. html table 点击跳转

    在tr上加 onclick事件 ,然后再js代码中写 页面的跳转,将参数以url的形式拼接在跳转url上然后再另一个页面以 request.getAttribute接收当然你如果使用了框架 可能在一些 ...

  3. [RTC]系统和RTC的时间保持一致

    hwclock输出的格式似乎是没有格式化的命令,所以只能修改date date "+%a %d %b %Y %I:%M:%S %p %Z"

  4. GIT——总结.1-

    创建版本库 时光机穿梭 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 Git Git是目前世界上最先进的分布式版本控制系统(没有之一) Git是分布式版本控制系统 首先,分布式版本控制系统根 ...

  5. m2e-wtp error: <path>/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF (No such file or directory)

    错误信息: D:\workspace\eclipse\xinfubao\xfb-mgr\target\m2e-wtp\web-resources\META-INF\MANIFEST.MF (系统找不到 ...

  6. Java BEAN与EJB的区别

    Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean.但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以 ...

  7. JAVASCRIPT 之escape 介绍

    escape() 方法:采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字 符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...

  8. css小贴士备忘录

    前言:在CSS的学习实践过程中,我经常遗忘一些貌似常用的代码,为了能够强化记忆特在此作归纳整理并将陆续增删,以备即时查阅.但愿今后能遇到问题及时解决,牢牢记住这些奇怪的字符们. 一.关于段落文本强制对 ...

  9. JS函数重载解决方案

    JS的函数定义可以指定形式参数名称,多多少少我们会以为js至少可以支持参数个数不同的方法重载,然而遗憾的是这仅仅是一个假象,js所有的参数都是以arguments传递过去的,这个参数类似于数组,在函数 ...

  10. 【转】一个小妙招能让你在服装上省下好多rmb

    朋友们,你们仔细算过自己每年在淘宝上买衣服消费了多少rmb吗?100?1000?10000?甚至更多? 朋友们,你知道淘宝上大多数店铺的衣服是哪里来的吗? 朋友们,你知道怎么在这上面能节省更多的mon ...