在 Linux 系统中,我们经常会遇到需要找到特定文本或模式的情况。 这时,一个强大而灵活的工具 grep 就派上用场了。 grep 是一个功能强大的文本搜索工具,可在文件中搜索指定的字符串或正则表达式并输出匹配的行。 今天,让我们仔细看看 grep 的用法。
1.基本用法。
grep 的基本语法格式如下:
bashgrep [选项] 模式 [file.]
其中模式是我们要查找的字符串或正则表达式;一个文件是我们要搜索的目标,它可以是多个;选项用于控制 grep 的行为。
2. 常用选项。
i:忽略大小写。 使用此选项,grep 在搜索时会忽略大小写。
n:显示匹配的行及其行号。 使用此选项时,grep 将输出匹配行的行号和内容。
v:列出不匹配的行。 使用此选项时,grep 将输出与指定模式不匹配的行。
r 或 -r:递归搜索。 使用此选项,grep 将递归搜索指定目录及其子目录中的匹配行。
l:仅列出匹配的文件名。 使用此选项时,grep 将仅输出包含匹配行的文件名,而不输出匹配行的内容。
c:统计匹配行数。 使用此选项时,grep 输出匹配行数,而不是匹配行的内容。
color=always、--color=auto 或 --color=never:控制匹配项的突出显示。 使用此选项,grep 会高亮显示匹配的内容,因此我们可以快速定位匹配信息。 where always 表示始终突出显示;auto 表示仅在输出到终端时突出显示;从不意味着从不突出显示。
3. 使用示例。
在文件中搜索指定的字符串:
bashgrep 'hello' file.txt
此命令将在文件中使用要搜索的 txt 文件包含"hello"并输出这些行。
2.忽略案例搜索:
bashgrep -i 'hello' file.txt
此命令将在文件中使用要搜索的 txt 文件包含"hello"(不区分大小写)并输出这些行。
3.显示匹配的行及其行号:
bashgrep -n 'hello' file.txt
此命令将在文件中使用要搜索的 txt 文件包含"hello"并输出行号和这些行的内容。
4.列出不匹配的行:
bashgrep -v 'hello' file.txt
此命令将在文件中使用TXT文件搜索不包含"hello"并输出这些行。
5.递归搜索:
bashgrep -r 'hello' directory/
此命令搜索目录目录及其所有子目录以查找包含"hello"并输出这些行。
6.仅列出匹配的文件名:
bashgrep -l 'hello' *
此命令将搜索当前目录中的所有文件以进行包含"hello"并仅输出包含匹配行的文件名。
7.使用正则表达式进行搜索:
bashgrep '^h.*o$' file.txt
此命令将在文件中使用TXT 文件"h"开始,到"o"末尾的行并输出这些行。 此处使用正则表达式"^h.*o"来描述此模式。 其中," "指示行的开头"."表示任何字符,"∗"表示零个或多个""指示行的末尾。 因此"^h.*o$"它以"h"开始,到"o"末尾的任何字符串。