Linux中grep命令

Linux 中的 grep 用法详解

grep 是 Linux 中强大的文本搜索工具,用于在文件或输入流中查找匹配指定模式的行。其基本语法为:

grep [选项] "模式" [文件]

核心功能
  1. 基础搜索
    在文件中查找包含特定字符串的行:

    grep "error" log.txt   # 搜索 log.txt 中所有含 "error" 的行
    

  2. 正则表达式搜索
    支持正则表达式匹配(需用 -Eegrep):

    grep -E "404|500" access.log  # 查找 HTTP 状态码为 404 或 500 的行
    


常用选项

选项作用示例
-i忽略大小写grep -i "warning" system.log
-v反向匹配(排除模式)grep -v "success" result.csv
-r递归目录搜索grep -r "function" /src/code/
-n显示行号grep -n "TODO" main.py
-c统计匹配行数grep -c "login" auth.log
-w全词匹配grep -w "port" config.ini
-A显示匹配行后 N 行grep -A 2 "crash" debug.log
-B显示匹配行前 N 行grep -B 1 "timeout" trace.out

实用技巧

  1. 管道组合
    与其他命令配合使用:

    ps aux | grep "nginx"      # 查找 Nginx 进程
    cat data.json | grep "id"  # 从 JSON 中提取含 "id" 的行
    

  2. 多文件搜索
    支持同时搜索多个文件:

    grep "deprecated" *.js   # 在所有 JS 文件中查找
    

  3. 正则进阶
    使用特殊符号:

    grep "^2023" dates.log    # 查找以 2023 开头的行
    grep "end$" script.sh     # 查找以 "end" 结尾的行
    

注意

  • 特殊字符(如 $, *, [)需用单引号包裹:grep '\$PATH' .bashrc
  • 复杂正则建议用 egrepgrep -E

典型场景

# 在日志中查找错误并显示前后 3 行
grep -C 3 "segmentation fault" /var/log/syslog

# 统计代码中特定函数调用次数
grep -r -c "calculate(" /project/src/

# 过滤注释行(排除以 # 开头的行)
grep -v "^#" config.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值