1. 命令作用
从文件中过滤符合key的行;只会获取一行的数据。
2. 语法
grep [options] 'key' fileName.txt
3. 常用参数
-i:不区分大小写
-v:查找不包含'key'的行
-w:按照单词进行匹配,而不是包含
-o: 打印匹配的key
-c:统计匹配到的次数
-n:显示行号
-r:逐层遍历目录查找
-A n:显示符合匹配后N行
-B n:显示符合匹配前n行
-C n:显示符合匹配前后各n行
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e:使用正则匹配
-E:使用扩展正则匹配
^key:匹配以key开头的行
key$:匹配以key结尾的行
^$: 匹配空行
--color=auto: 匹配到关键字高亮
4. 小案列
文件来自于 /etc/passwd
;可以使用cp /etc/passwd .
,复制一份到当前目录,用于测试,切记在源文件上进行操作。
- 获取关键字在文件中的个数
grep -ci 'games' passwd # c:统计个数 i:忽略大小写
- 查看关键字在文件中所在行的前后5行
grep -C 5 'root' passwd # C: 山下文前后5行.
- 以关键字开头
grep -C 2 '^root' passwd # C: 山下文前后2行. 必须以‘root’开头.
- 以关键字结尾
grep -C 2 'root$' passwd # C: 山下文前后2行. 必须以‘root’结尾.