Linux三剑客之grep命令使用教程
2025/5/27 17:53:21
来源:https://blog.csdn.net/weixin_45668002/article/details/148229116
浏览:
次
关键词:Linux三剑客之grep命令使用教程
grep命令选项详解:从基础到进阶的实用指南
一、基本选项
1. -i
:忽略大小写(Case Insensitive)
- 含义:搜索时不区分字母大小写。
- 用法示例:
搜索包含"hello"的行,无论大小写:grep -i "hello" file.txt
- 示例数据(file.txt):
Hello World
hello there
Hi, HELLO!
Goodbye
- 执行结果:
Hello World
hello there
Hi, HELLO!
- 应用场景:日志分析(如ERROR/error混用)、多语言文本处理。
2. -v
:反向匹配(Invert Match)
3. -n
:显示行号(Line Number)
- 含义:在匹配的行前添加行号。
- 用法示例:
查找配置文件中包含"timeout"的行及其位置:grep -n "timeout" config.ini
- 示例数据(config.ini):
[database]
host=localhost
port=5432
timeout=300[server]
max_connections=100
# default timeout value
request_timeout=60
- 执行结果:
4:timeout=300
8:# default timeout value
9:request_timeout=60
- 应用场景:快速定位代码或配置文件中的问题行。
4. -c
:统计匹配行数(Count)
5. -w
:匹配完整单词(Word Regexp)
- 含义:仅匹配独立的单词,避免匹配子串。
- 用法示例:
查找包含"root"但不匹配"rooted"的行:grep -w "root" system.log
- 示例数据(system.log):
root logged in at 09:00
user data rooted successfully
root permissions granted
system rooted for testing
- 执行结果:
root logged in at 09:00
root permissions granted
- 应用场景:数据库字段名搜索、代码中变量名匹配。
6. -A/B/C
:上下文显示(Context Lines)
- 含义:
-A n
:显示匹配行及其后n
行。-B n
:显示匹配行及其前n
行。-C n
:显示匹配行及其前后各n
行。
- 用法示例:
查看配置文件中"[database]"部分的完整内容:grep -A 3 "\[database\]" config.ini
- 示例数据(config.ini):
[server]
host=localhost
port=8080[database]
db_host=db.example.com
db_port=5432
username=admin
password=secret[logging]
level=INFO
file=app.log
- 执行结果:
[database]
db_host=db.example.com
db_port=5432
username=admin
- 应用场景:查看函数上下文、配置文件段落分析。
二、正则表达式选项
1. -E
:扩展正则表达式(Extended Regexp&#