概述
grep 命令可以用于在指定文件中通过指定查找模式查找指定字符串。
注:与该命令有关的还有 egrep 和 fgrep 可以关注一下。
语法该命令的语法如下:
grep [选项] [查找模式] [文件名1, 文件名2, ...]该命令支持的选项有:
注:虽然选项很多,但不需要记住大部分选项,只需要知道该命令的一些常用用法即可。
使用 在文件中查找指定关键字最常用的用法应该是在文件中查找指定关键字,语法格式如下:
# 语法 grep 指定关键字 指定文件 # 示例 grep "world" log.txt注:待查找的指定关键字建议用双引号引起来,特别是在有空格的情况下。
显示除了匹配关键字之外的所有行有时候我们想要显示那些除了匹配的关键字之外的所有行,可以加上 -v 选项:
# 语法 grep -v 指定关键字 指定文件 # 示例 grep -v "world" log.txt 显示行号有时候我们希望看到匹配到的行在文件中的行号是多少,那么可以使用 -n 选项:
# 语法 grep -n 指定关键字 指定文件 # 示例 grep -n "world" log.txt 统计匹配到的总行数如果我们想要获取匹配到的总行数,那么可以使用 -c 选项:
# 语法 grep -c 指定关键字 指定文件 # 示例 grep -c "o" log.txt 显示匹配行之前或之后几行的内容除了显示匹配行之外,可能我们还需要显示匹配行之前几行或者之后几行的信息。那么可以使用 -A 或 -B 或 -C 选项:
# 语法 grep -A 指定行数 指定关键字 指定文件 grep -B 指定行数 指定关键字 指定文件 grep -C 指定行数 指定关键字 指定文件 # 示例,表示显示 log.txt 文件中匹配到 "world" 的行及下面的 2 行内容 grep -A 2 "world" log.txt注:
A 选项,是 After 的缩写,表示除了展示匹配行之外,还要展示出匹配行下面的若干行。如 -A 2 表示还展示匹配行下面 2 行的内容。B 选项,是 Before 的缩写,表示除了展示匹配行之外,还要展示出匹配行上面的若干行。如 -B 2 表示还展示匹配行上面 2 行的内容。C 选项,是 -A 和 -B 选项的合体,表示除了展示匹配行之外,还要展示出匹配行上面和下面各若干行。如 -C 2 表示还展示匹配行上面 2 行和下面 2 行的内容。 忽略大小写有时候匹配的时候,希望忽略掉大小写,让大写和小写字母都能被匹配到,可以使用 -i 选项:
# 语法 grep -i 指定关键字 指定文件 # 示例 grep -i "WORLD" log.txt 多文件查找grep 命令是支持多文件查找的,显示结果它会输出匹配行内容和匹配行所在文件名。 如果想要只显示匹配内容在那些文件中,可以加上 -l 选项,得到的就是一个包含有匹配内容的文件列表,而如果使用 -L 选项,则会得到一个不包含有匹配内容的文件列表。
支持基本正则表达式grep 命令是支持正则表达式的,但是是支持基本正则表达式。即在基本正则表达式(BRE)中,只承认“^”、“$”、“.”、“[”、“]”、“*”这些是元字符,所有其他的字符(如 “(”、“)”、“{”、“}”、“?”、“+”、“|” 等)都被识别为普通字符。语法如下:
# 语法 grep 基本正则表达式 指定文件 # 示例,搜索 log.txt 文件中以 "h" 开头的行 grep "^h" log.txt 支持扩展正则表达式如果要使用扩展正则表达式,即支持 “(”、“)”、“{”、“}”、“?”、“+”、“|” 等元字符。那么需要加上 -E 选项,或者使用 egrep 命令:
# 语法 grep -E 扩展正则表达式 指定文件 # 示例,搜索 log.txt 文件中包含至少一个 "h" 字符的行 grep -E "h+" log.txt 精确搜索某个词如果我们想要精确搜索某个词,那么使用 -w 选项。
以递归方式查找符合条件的文件如果我们要查找指定目录下所有符合条件的文件,那么可以使用 -r 选项:
# 语法 grep -r 指定关键字 指定目录名 # 示例,查找 /home/ 目录下所有包含 "hello" 字符串的文件 grep -r "hello" /home/
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |