马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
grep命令选项详解:从基础到进阶的实用指南
一、基本选项
1. -i:忽略巨细写(Case Insensitive)
- 寄义:搜刮时不区分字母巨细写。
- 用法示例:
搜刮包含"hello"的行,无论巨细写:
- 示例数据(file.txt):
- Hello World
- hello there
- Hi, HELLO!
- Goodbye
复制代码
- 执行结果:
- Hello World
- hello there
- Hi, HELLO!
复制代码
- 应用场景:日记分析(如ERROR/error混用)、多语言文本处理。
2
. -v:反向匹配(Invert Match)
- 寄义:表现不匹配指定模式的行。
- 用法示例:
排除包含"error"的日记行:
- 示例数据(log.txt):
- INFO: System started
- WARNING: Disk space low
- ERROR: Connection failed
- INFO: User logged in
复制代码
- 执行结果:
- INFO: System started
- WARNING: Disk space low
- INFO: User logged in
复制代码
- 应用场景:过滤干扰信息(如系统日记中的非错误信息)。
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)
- 寄义:仅返回匹配的行数,不表现具体内容。
- 用法示例:
统计日记中ERROR的出现次数:
- 示例数据(app.log):
- INFO: Starting application
- WARNING: Deprecated API call
- ERROR: Database connection failed
- ERROR: Invalid user input
- INFO: Process completed
复制代码
- 执行结果:
- 应用场景:监控
日记异常频率、统计特定关键词出现次数。
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=localhostport=8080[database]db_host=db.example.comdb_port=5432
- username=adminpassword=secret[logging]level=INFOfile=app.log
复制代码
- 执行结果:
- [database]db_host=db.example.comdb_port=5432
- username=admin
复制代码
- 应用场景:查看函数上下文、设置文件段落分析。
二、正则表达式选项
1. -E:扩展正则表达式(Extended Regexp)
- 寄义:支持更强盛的正则语法,如+、|、()等。
- 用法示例:
匹配IP地点(如192
.168.1.1):[code][/code]
3.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |