一、什么是 grep¶
grep 是 Linux 中最常用的文本过滤命令之一,主要用于:
- 在文件中查找包含指定内容的行
- 根据正则表达式筛选文本
- 和管道组合完成日志、配置和命令输出过滤
在三剑客里,grep 通常是最先上手、也最常用的一把。
二、grep 的基本格式¶
grep [选项] '模式' 文件
常见用法示例:
$ grep 'root' /etc/passwd
三、常用选项¶
| 选项 | 说明 |
|---|---|
-n |
显示行号 |
-v |
反向匹配,排除符合条件的行 |
-i |
忽略大小写 |
四、常见使用示例¶
4.1 基础搜索¶
在 /etc/passwd 中搜索包含 root 的行:
$ grep 'root' /etc/passwd
4.2 显示行号¶
$ grep -n 'root' /etc/passwd
4.3 忽略大小写¶
$ grep -i 'network' /etc/passwd
4.4 反向匹配¶
$ grep -v 'network' /etc/passwd
五、grep 在配置清理中的常见写法¶
虽然原始 grep 小节比较简短,但在前面的正则部分已经给了不少很实用的 grep 组合写法。
例如,排除空行:
$ grep -vn '^$' a.txt
排除空行和注释行:
$ grep -v '^$' /etc/ssh/sshd_config | grep -v '^#'
如果希望一步完成,也可以配合扩展正则:
$ egrep -vn '^$|^#' /etc/ssh/sshd_config
六、小结¶
grep 看起来简单,但它是 Linux 文本处理里出现频率最高的命令之一。日常工作中,建议优先掌握下面几种写法:
- 查内容:
grep 'xxx' file - 带行号:
grep -n 'xxx' file - 排除匹配:
grep -v 'xxx' file - 忽略大小写:
grep -i 'xxx' file - 配合正则处理配置文件中的空行和注释行
把这些场景练熟后,绝大多数基础文本过滤任务都能很快完成。