Linux grep 文本搜索工具

简介: 前言grep 是一个常用的文本搜索工具,通常用于在文本文件中查找特定模式或字符串。它的名字是 "global regular expression print" 的缩写。可以帮助你在文本文件中查找特定的内容,无论是简单的字符串还是复杂的正则表达式模式。

前言

grep 是一个常用的文本搜索工具,通常用于在文本文件中查找特定模式或字符串。它的名字是 "global regular expression print" 的缩写。可以帮助你在文本文件中查找特定的内容,无论是简单的字符串还是复杂的正则表达式模式。

基本用法

grep pattern filename

pattern:要搜索的正则表达式模式或字符串。

filename:要在其上执行搜索的文件名。

示例

grep "apple" example.txt

常用选项

-i:忽略大小写

grep -i pattern filename

搜索包含特定字符串 "pattern" 的行,不区分大小写:

grep -i "pattern" filename.txt

-r:递归搜索目录中的文件

grep -r pattern directory

递归搜索目录中的文件:

grep -r "pattern" directory/

-n:显示匹配行的行号

grep -n pattern filename

显示匹配行的行号:

grep -n "pattern" filename.txt

-v:显示不匹配的行

grep -v pattern filename

显示不匹配的行:

grep -v "pattern" filename.txt

-l:只显示包含匹配文本的文件名,而不显示匹配行

grep -l pattern filename

显示只包含匹配文本的文件名,而不显示匹配行:

grep -l "pattern" directory/*

-E:使用扩展的正则表达式语法

grep -E pattern filename

"pattern1|pattern2":这是一个正则表达式模式,其中 | 是一个正则表达式操作符,表示逻辑或的意思。

grep -E "pattern1|pattern2" filename.txt

正则表达式语法

.:匹配任何单个字符(除了换行符)。例如,a.b 可以匹配 "axb"、"aab"、"a1b" 等。

*:匹配前一个字符或子表达式零次或多次。例如,a*b 可以匹配 "b"、"ab"、"aab"、"aaab" 等。

+:匹配前一个字符或子表达式一次或多次。例如,a+b 可以匹配 "ab"、"aab"、"aaab" 等。

?:匹配前一个字符或子表达式零次或一次。例如,colou?r 可以匹配 "color" 和 "colour"。

[]:字符类,用于匹配方括号内的任何一个字符。例如,[aeiou] 匹配任何一个元音字母。

[^]:否定字符类,用于匹配除了方括号内字符之外的任何字符。例如,[^0-9] 匹配任何非数字字符。

():捕获组,用于捕获一个子表达式中的匹配文本,以便后续引用。例如,(abc)+ 匹配 "abc"、"abcabc"、"abcabcabc" 等。

^:匹配字符串的开头(或行的开头,如果使用多行模式)。例如,^abc 匹配以 "abc" 开头的行。

$:匹配字符串的结尾(或行的结尾,如果使用多行模式)。例如,xyz$ 匹配以 "xyz" 结尾的行。

常见的文本模式

匹配单词:

匹配单词 "apple":grep "apple" file.txt

匹配以 "apple" 开头的单词:grep "^apple" file.txt

匹配以 "apple" 结尾的单词:grep "apple$" file.txt

匹配包含 "apple" 的单词:grep "apple" file.txt

忽略大小写匹配 "apple":grep -i "apple" file.txt

匹配什么或什么 grep -E "pattern1|pattern2" filename.txt

匹配数字:

匹配整数:grep "[0-9]+" file.txt

匹配浮点数:grep "[0-9]+\.[0-9]+" file.txt

匹配日期:

匹配日期格式 "YYYY-MM-DD":grep "[0-9]{4}-[0-9]{2}-[0-9]{2}" file.txt

匹配IP地址:

匹配IPv4地址:grep "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b" file.txt

匹配URL:

匹配常见URL:grep "https?://[^\s]+" file.txt

匹配空白行:

匹配空白行:grep "^\s*$" file.txt

匹配引号内的文本:

匹配双引号内的文本:grep "\"[^\"]*\"" file.txt

匹配单引号内的文本:grep "'[^']*'" file.txt

目录
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
133 8
|
5天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
|
7天前
|
监控 Linux 数据处理
Linux grep技巧 结合awk查询
结合 `grep` 和 `awk`,可以实现灵活、高效的文本处理和数据分析。`grep` 用于快速过滤符合条件的行,`awk` 用于进一步处理和提取数据。这种组合使用在日志分析、数据处理和系统监控等场景中尤为常见。掌握这两者的基本用法和组合技巧,可以大大提升在 Linux 环境下的工作效率。
29 7
|
3月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
76 5
Linux系统之安装Ward服务器监控工具
|
2月前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
52 4
|
2月前
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
180 1
|
2月前
|
缓存 监控 Linux
掌握Linux性能分析:深入探索perf工具
【10月更文挑战第26天】
87 1
|
关系型数据库 MySQL Linux
linux 的实用工具分享
做开发用Linux感觉比Windows在一些地方要好用(只是个人感觉,不想引战),在Linux中没有烦人的广告弹窗,没有动不动给你惊喜的Windows强制更新,而且Linux相对Windows要流畅,在低配的电脑上也很少卡顿.现在很多开发软件都有Linux版本,使用起来也算方便.当然,要是玩游戏等娱乐使用,还是Windows牛逼.我现在写代码基本都使用Linux.我用的Ubuntu18.04。
2073 0
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
534 6