linux之grep命令
1.语法
grep [-cinvABC] 'word' filename
-c : 打印符合要求的行数
-n :在输出符合要求的行的同时连同行号一起输出
-v :打印不符合要求的行
-A :后跟一个数字(有无空格都可以),例如-A2则表示打印符合要求的行以及下面两行
-B :后跟一个数字,例如-B2打印符合要求的行以及上面两行
-C :后跟一个数字,例如-C2打印符合要求的行以及上下各两行
-r :会把目录下面所有的文件全部遍历
2.实例
为了更加方便显示,alias grep='grep --color'
- 过滤出带有某个关键词的行并输出行号 grep -n 'root' 1.txt
- 过滤出不带有某个关键词的行并输出行号 grep -n -v 'root' 1.txt
- 过滤出所有包含数字的行grep '[0-9]' 1.txt
- 过滤出所有不包含数字的行grep -v '[0-9]' 1.txt
- 去除所有以'#'开头的行 grep -v '^#' 1.txt
- 去除所有空行和以'#'开头的行 grep -v '^$' 1.txt |grep -v '^#'
- 过滤出以英文字母开头的行 grep '^[a-zA-Z]' 1.txt
- 过滤出以非数字开头的行 grep '^[^0-9]' 1.txt
- 过滤任意一个或多个字符 grep 'r.o' 1.txt;grep 'r*t' 1.txt;grep 'r.*t' 1.txt
.表示任意一个字符;*表示0个或多个前面的字符;.*表示0个或多个任意字符,空行也包含在内 - 指定过滤字符次数 grep 'o\{2\}' 1.txt