一、什么是 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
  • 配合正则处理配置文件中的空行和注释行

把这些场景练熟后,绝大多数基础文本过滤任务都能很快完成。