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的行。