侧边栏壁纸
  • 累计撰写 72 篇文章
  • 累计创建 22 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【Linux命令】grep

Administrator
2025-06-28 / 0 评论 / 0 点赞 / 5 阅读 / 6527 字 / 正在检测是否收录...

grep(Global Regular Expression Print)是 Linux/Unix 系统中用于文本搜索的强大工具,它能根据指定模式匹配文本并输出匹配行。

一、常用参数

参数

作用

-i

忽略大小写(Case-insensitive)。

-v

反向匹配,输出不包含关键词的行(Inverse match)。

-r

递归搜索目录(Recursive)。

-n

显示行号(Line number)。

-c

统计匹配行数(Count)。

-w

全词匹配(Whole word)。

-A N

显示匹配行及后 N 行(After context)。

-B N

显示匹配行及前 N 行(Before context)。

-C N

显示匹配行及前后各 N 行(Context)。

-E

使用扩展正则表达式(Extended regex)。

-o

只输出匹配的部分(而非整行)。

--color

高亮显示匹配文本。

二、示例

1. 递归搜索目录中的关键词

grep -r "import" /项目目录/

2. 统计包含特定单词的行数

grep -c "ERROR" 日志.log

3. 显示匹配行及前后 3 行

grep -C 3 "异常" 系统日志.log

4. 排除特定目录的搜索

grep -r --exclude-dir={node_modules,venv} "TODO" /项目/

5. 结合 find 搜索特定类型文件

find . -name "*.py" -exec grep "def main" {} +

6. 限制搜索范围

# 只搜索前 1000 行
head -n 1000 文件.txt | grep "关键词"

7. 中文搜索乱码

  • 原因:文件编码与终端编码不一致。

  • 解决:指定编码:

grep -a --binary-files=text --locale=C "中文" 文件.txt

8. 查找 IP 地址(使用扩展正则)

grep -E -o "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" 网络日志.log

0
博主关闭了所有页面的评论