Linux下shell基本命令之grep用法及示例

grep 是 Unix 和 Linux 系统中广泛使用的文本搜索工具,它允许用户搜索包含指定模式的文本行。以下是 grep 命令的基本用法及示例:

一、基本用法

bash 复制代码
grep [选项] 模式 [文件...]

二、常用选项

  • -i:忽略大小写。
  • -v:反向选择,显示不包含模式的行。
  • -n:显示匹配行的行号。
  • -l:显示包含匹配模式的文件名。
  • -L:显示不包含匹配模式的文件名。
  • -c:只输出匹配到的行数。
  • -w:只匹配整个单词。
  • -x:只匹配整行。
  • -r 或 -R:递归搜索目录中的文件。
  • -A NUM:匹配行及后面 NUM 行一起显示。
  • -B NUM:匹配行及前面 NUM 行一起显示。
  • -C NUM:匹配行及前后各 NUM 行一起显示。

三、正则表达式

grep 支持正则表达式,这使得它可以进行复杂的文本搜索。例如:

  • .:匹配任意单个字符。
  • *:匹配前一个字符零次或多次。
  • ^:匹配行的开始。
  • $:匹配行的结束。
  • []:匹配括号内的任意一个字符。
  • |:表示或的关系,如 a|b 匹配 a 或 b。
  • ():分组,用于后向引用。

四、示例

‌搜索文本‌

假设有一个文件 example.txt,内容如下:

bash 复制代码
Hello World hello unix GREP is powerful

要在文件中搜索包含 "hello" 的行(忽略大小写),可以使用以下命令:

bash 复制代码
grep -i "hello" example.txt

输出:

bash 复制代码
Hello World hello unix

使用正则表达式‌

要在文件中搜索以 "G" 开头并以 "p" 结尾的单词,可以使用以下命令:

bash 复制代码
grep -w "\bG\w*p\b" example.txt

输出:

bash 复制代码
GREP is powerful

‌显示行号‌

要在文件中搜索包含 "World" 的行并显示行号,可以使用以下命令:

bash 复制代码
grep -n "World" example.txt

输出:

bash 复制代码
1:Hello World

‌反向选择‌

要在文件中搜索不包含 "unix" 的行,可以使用以下命令:

bash 复制代码
grep -v "unix" example.txt

输出:

bash 复制代码
Hello World GREP is powerful

‌递归搜索‌

要在目录 mydir 及其子目录中的所有文件中搜索包含 "error" 的行,可以使用以下命令:

bash 复制代码
grep -r "error" mydir/
相关推荐
帷幕落秋11 分钟前
Linux 网络基础
linux
高晶18 分钟前
ARM 嵌入式 Linux 命令系统 BusyBox 实战指南
linux·设计模式·程序员
Initialize2930826 分钟前
Docker 容器网络不通?五步排查法
运维
重生之高冷汉堡包1 小时前
家庭住宅IP是什么?机房住宅与普通住宅有什么区别
运维·服务器·网络·网络协议·tcp/ip·用户运营
Thneonl1 小时前
git reset --hard 之后先别哭:reflog 里存着你刚弄丢的那个分支
运维·后端
见闻小天地1 小时前
液冷直流负载:AI 算力中心带载测试的关键设备
运维·业界资讯
迪康软件zz1 小时前
从 PHP 高危漏洞看纵深防御:资产盘点、补丁管理与端点防护实践
运维·安全·自动化运维
祥Sir的SRE笔记1 小时前
CPU 100% 不一定是故障:压测打满、业务饱和、突变打满的判断与排查
linux·面试·性能优化·dba·sre·故障定位·性能排查
智能运维指南1 小时前
2026 年可观测平台选型对比:混合 IT 架构下企业运维监控产品怎么选
运维·可观测·嘉为蓝鲸·运维监控产品对比
Fnetlink11 小时前
Fnet 云网安 261023
运维·开发语言·网络·人工智能·安全·web安全·php