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 匹配 ab
  • ():分组,用于后向引用。

四、示例

搜索文本

假设有一个文件 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/
相关推荐
猪脚踏浪12 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言