【linux】Shell脚本三剑客之grep和egrep命令的详细用法攻略
warning:
这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
grep和egrep是Linux/Unix系统中常用的文本搜索工具,可以通过指定的模式(正则表达式)对文本内容进行搜索,并把匹配的行打印出来。
grep: 全称是Global Regular Expression Print,是一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。egrep: 等同于grep -E,使用扩展的正则表达式进行搜索。
基本用法
grep 'pattern' filenamepattern是你想要搜索的字符串或正则表达式filename是你想要搜索的文件名
选项
-i: 忽略大小写-v: 显示不包含匹配文本的所有行-n: 显示匹配行及其行号-r: 递归搜索-l: 只列出包含匹配文本的文件名-A #: 显示匹配行及其后面的#行-B #: 显示匹配行及其前面的#行-C #: 显示匹配行及其前后的#行
正则表达式
.: 匹配任意单个字符*: 匹配前面的字符任意次(包括0次)[...]: 字符集,匹配括号中的任意字符[^...]: 反向字符集,匹配不在括号中的任意字符^: 行的开始$: 行的结束\<: 词的开始\>: 词的结束\(\): 分组标记\w: 匹配文字和数字字符\W: 匹配非单词字符\+: 匹配一个或多个前面的字符\?: 匹配0个或一个前面的字符{n}: 精确匹配n次{n,}: 至少匹配n次{n,m}: 至少匹配n次,至多匹配m次
示例
# 查找文件中包含"error"的行
grep 'error' log.txt
# 查找文件中包含"error"的行,并显示行号
grep -n 'error' log.txt
# 查找文件中包含"error"的行,并显示匹配行前后的2行
grep -C 2 'error' log.txt
# 查找当前目录下所有.txt文件中包含"error"的行
grep -r 'error' *.txt
# 使用正则表达式,匹配以a开头,以b结尾的单词
egrep '\ba\w*b\b' log.txt以上是grep和egrep的基本用法和常见示例,它们是文本处理的强大工具,可以帮助开发者和系统管理员快速定位和处理文本数据。
评论已关闭