Linux - grep
命令
grep
是一个强大的文本搜索工具,用于在文件中查找指定的模式。它的名字来源于正则表达式中的 g/re/p
,其中 re
表示正则表达式,而 g
和 p
分别表示全局搜索和打印匹配的行:
基本语法
grep [options] pattern [file...]
参数说明
pattern
: 要搜索的模式,可以是普通字符串或正则表达式。file
: 要搜索的文件。如果省略文件名,则grep
将从标准输入读取数据。
常用选项
-i
:忽略大小写。-r
或-R
:递归搜索,用于搜索目录及其子目录。-n
:显示匹配行的行号。-v
:反向选择,显示不匹配模式的行。-c
:只显示匹配行的计数,不显示具体内容。-l
:仅显示包含匹配模式的文件名,而不显示匹配的行。-e pattern
:指定多个模式,用于 OR 操作。
示例
-
在文件中搜索关键字:
grep "keyword" filename
这将在指定的文件中搜索包含 “keyword” 的行。
-
忽略大小写搜索:
grep -i "word" filename
通过
-i
选项,可以忽略大小写进行搜索。 -
递归搜索目录:
grep -r "pattern" directory
该命令将在指定目录及其子目录中递归搜索指定模式。
-
显示匹配行的行号:
grep -n "pattern" filename
使用
-n
选项,可以显示匹配行的行号。 -
反向选择,显示不匹配的行:
grep -v "pattern" filename
通过
-v
选项,可以显示不包含指定模式的行。 -
统计匹配行的数量:
grep -c "pattern" filename
使用
-c
选项,可以只显示匹配行的计数,不显示具体内容。 -
仅显示包含匹配模式的文件名:
grep -l "pattern" directory/*
使用
-l
选项,可以仅显示包含匹配模式的文件名。 -
使用正则表达式进行搜索:
grep -E "pattern1|pattern2" filename
通过
-E
选项,可以使用扩展的正则表达式进行搜索,支持多个模式的 OR 操作。
注意事项
grep
默认使用基本正则表达式,如果要使用扩展的正则表达式,可以使用-E
选项。grep
可以与其他命令结合使用,例如通过管道符号|
。