您的位置:首页 > 博客中心 > 互联网 >

day23-正则|grep介绍

时间:2022-05-04 09:10

grep工具介绍:grep&egrep工具作为shell必备三剑客之一:

grep: (global search regular expression and  print out the line),使用正则表达式搜索文本并把行打印出来),是一种强大的文本搜索工具,它可以搜索文本,并把需要的行打印出来:

语法:grep   [ options ]   "word"   filename

  • 过滤一个字符串

    • grep -c

  • grep -n

  • grep -i

  • grep -v

  • grep -r/R

  • grep -A

  • grep -B

  • grep -C

  • eg1:grep -n '[0-9]'

    • eg2:grep -nv '[0-9]'

  • grep -n ' ^# ' 过滤以#开头的行(^在此表示以某字符开头)

  • grep '[^0-9]' 表示非0-9中任意字符所在的行,即任意非数字所在的行(只要包含非数字字符都算在内,中括号内的‘^’表示否定)

    • grep '^[^0-9]' 表示以非数字字符开头的行

    • grep 'r.o' 在此‘.’表示一个任意字符

    • grep 'o*o' 在此‘ * ’表示其左边的字符重复n此(n≥0)

    • grep '.*' 在此' . * '组合表示所有任意字符

    • grep 'o\ {2\ }' 在此{}表示前面字符或字符串出现的次数(也可以是一个区间,如'o\ {0,3\ }'表示0个到3个o)

  • egrep 'o{2}'=grep -E 'o {2}' = grep 'o\ {2\ }'

    • egrep -n 'o+o' 在此‘+’表示其左边的字符重复n此(n≥1,注意和*的区别)

    • egrep -n 'o?t' 在此?表示其前面的字符出现0次或1次

    • egrep -n 'root|nologin' 在此‘|’表示或者

  • grep -nE '(oo){2}' 在此()内的内容表示一个字符组合,即连续出现两次‘oo’=‘oooo’字符串

  • [root@adai003 ~]# grep -r --include="*.txt" 'root' ./sed/./sed/test.txt:root:x:0:0:roprot:/root:/bin/bash

    说明: 过滤./sed/目录下所有.txt文件中含有字符串root的行。


    本类排行

    今日推荐

    热门手游