**grep ** grep [-cinvABC] 'word' filename -c 行数 -i 不区分大小写 -n 显示行号 -v 取反(比如下面例子中,加v就是取不包含关键字的行) -r 遍历所有子目录 -A 后面跟数字,过滤出符合要求的行以及下面n行 -B 同上,过滤出符合要求的行以及上面n行 -C 同上,同时过滤出符合要求的行以及上下各n行
mkdir /tmp/grep cd /tmp/grep/ cp /etc/passwd .
grep 'nologin' passwd 从passwd文件中过滤nologin
grep -n 'root' /etc/passwd
grep -nv 'nologin' /etc/passwd
grep '[0-9]' passwd //含有数字的行
grep -v '[0-9]' inittab //不含数字的行
grep -v '^#' inittab //不以#开头的行
grep -v '^#' inittab|grep -v '^$' //不以#开头且去除空白行的行
grep '^[^a-zA-Z]' inittab //不以字母开头的行 (^在[]外面是以[]内内容开头,在[]内则是括号内内容的相反)
grep 'r.o' passwd //ro中间的.代表任意字符
grep 'r*o' passwd //*左边的字符重复0次或多次
grep 'oo*' passwd //o+o的0次或多次
grep '.*' passwd //任意字符匹配
grep 'o\{2\}' passwd //o出现两次,这里加\脱译
grep -E 'o{2}' passwd //o出现两次,-E选项就不需要脱译
egrep 'o{2}' passwd //o出现两次
egrep 'o+' passwd //o出现1次或多次
egrep 'oo?' passwd //oo 出现0次或者1次(?前面字符)
egrep 'root|nologin' passwd //root或者nologin
egrep '(oo){2}' passwd //oo出现两次