Linux三剑客之grep命令利用教程

[复制链接]
发表于 2025-7-28 03:02:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
grep命令选项详解:从基础到进阶的实用指南

一、基本选项

1. -i:忽略巨细写(Case Insensitive)


      
  • 寄义:搜刮时不区分字母巨细写。  
  • 用法示例:
    搜刮包含"hello"的行,无论巨细写:
    1. grep -i "hello" file.txt
    复制代码

  • 示例数据(file.txt):
    1. Hello World
    2. hello there
    3. Hi, HELLO!
    4. Goodbye
    复制代码

  • 执行结果:
    1. Hello World
    2. hello there
    3. Hi, HELLO!
    复制代码

  • 应用场景:日记分析(如ERROR/error混用)、多语言文本处理。
2
. -v:反向匹配(Invert Match)



      
  • 寄义:表现不匹配指定模式的行。  
  • 用法示例:
    排除包含"error"的日记行:
    1. grep -v "error" log.txt
    复制代码

  • 示例数据(log.txt):
    1. INFO: System started
    2. WARNING: Disk space low
    3. ERROR: Connection failed
    4. INFO: User logged in
    复制代码

  • 执行结果:
    1. INFO: System started
    2. WARNING: Disk space low
    3. INFO: User logged in
    复制代码

  • 应用场景:过滤干扰信息(如系统日记中的非错误信息)。
3. -n:表现行号(Line Number)


      
  • 寄义:在匹配的行前添加行号。  
  • 用法示例:
    查找设置文件中包含"timeout"的行及其位置:
    1. grep -n "timeout" config.ini
    复制代码

  • 示例数据(config.ini):
    1. [database]
    2. host=localhost
    3. port=5432
    4. timeout=300
    5. [server]
    6. max_connections=100
    7. # default timeout value
    8. request_timeout=60
    复制代码

  • 执行结果:
    1. 4:timeout=300
    2. 8:# default timeout value
    3. 9:request_timeout=60
    复制代码

  • 应用场景:快速定位代码或设置文件中的题目行。
4. -c:统计匹配行数(Count)


      
  • 寄义:仅返回匹配的行数,不表现具体内容。  
  • 用法示例:
    统计日记中ERROR的出现次数:
    1. grep -c "ERROR" app.log
    复制代码

  • 示例数据(app.log):
    1. INFO: Starting application
    2. WARNING: Deprecated API call
    3. ERROR: Database connection failed
    4. ERROR: Invalid user input
    5. INFO: Process completed
    复制代码

  • 执行结果:
    1. 2
    复制代码

  • 应用场景:监控监控日记异常频率、统计特定关键词出现次数。
5. -w:匹配完整单词(Word Regexp)


      
  • 寄义:仅匹配独立的单词,制止匹配子串。  
  • 用法示例:
    查找包含"root"但不匹配"rooted"的行:
    1. grep -w "root" system.log
    复制代码

  • 示例数据(system.log):
    1. root logged in at 09:00
    2. user data rooted successfully
    3. root permissions granted
    4. system rooted for testing
    复制代码

  • 执行结果:
    1. root logged in at 09:00
    2. root permissions granted
    复制代码

  • 应用场景:数据库字段名搜刮、代码中变量名匹配。
6. -A/B/C:上下文表现(Context Lines)


      
  • 寄义:
         
    • -A n:表现匹配行及厥后n行。   
    • -B n:表现匹配行及其前n行。   
    • -C n:表现匹配行及其前后各n行。   
       
  • 用法示例:
    查看设置文件中"[database]"部门的完整内容:
    1. grep -A 3 "\[database\]" config.ini
    复制代码

  • 示例数据(config.ini):
    1. [server]host=localhostport=8080[database]db_host=db.example.comdb_port=5432
    2. username=adminpassword=secret[logging]level=INFOfile=app.log
    复制代码

  • 执行结果:
    1. [database]db_host=db.example.comdb_port=5432
    2. username=admin
    复制代码

  • 应用场景:查看函数上下文、设置文件段落分析。
二、正则表达式选项

1. -E:扩展正则表达式(Extended Regexp)


      
  • 寄义:支持更强盛的正则语法,如+、|、()等。  
  • 用法示例:
    匹配IP地点(如192
    .168.1.1):[code][/code]

3.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表