首页 > 其他分享 >grep命令详解

grep命令详解

时间:2024-08-12 09:54:15浏览次数:14  
标签:grep pattern 命令 详解 搜索 file 匹配 txt

grepLinuxUnix 系统中用于搜索文本的强大命令之一。它通过指定的模式(通常是正则表达式)在文件或标准输入中搜索匹配的行,并输出这些行。

基本用法

grep [选项] PATTERN [FILE...]
  • PATTERN:要搜索的模式(字符串或正则表达式)。
  • [FILE…]:要搜索的文件名列表。如果省略文件名,grep 会从标准输入读取数据。

常用选项

  1. -i:忽略大小写。搜索时忽略大小写。
grep -i "pattern" file.txt
  1. -v:反向匹配 : 输出不匹配PATTERN的行,即不包含PATTERN的行。
grep -v "pattern" file.txt
  1. -r -R:递归搜索目录。在目录及其子目录中递归搜索PATTERN
grep -r "pattern" /opt/local/var
  1. -l:显示匹配的文件名:仅显示包含匹配行的文件名,而不是具体的行内容。
grep -l "pattern" *.txt
  1. -L:显示不匹配的文件名:显示不包含匹配行的文件名。
grep -L "pattern" *.txt
  1. -n:显示匹配行的行号:在输出中显示匹配行的行号。
grep -n "pattern" file.txt
  1. -c:显示匹配的行数:输出每个文件中匹配PATTERN的行数。
grep -c "pattern" file.txt
  1. -o:仅输出匹配的部分:仅显示匹配的字符串,而不是整个行。
grep -o "pattern" file.txt
  1. -H:显示文件名 : 即使只搜索一个文件,也显示文件名。
grep -H "pattern" file.txt
  1. -A:显示匹配行及之后的几行
grep -A 3 "pattern" file.txt
# 显示匹配行及其后3行。
  1. -B:显示匹配行及之前的几行
grep -B 3 "pattern" file.txt
# 显示匹配行及其前3行
  1. -C:显示匹配行及上下文几行
grep -C 3 "pattern" file.txt
# 显示匹配行及其前后3行
  1. -P : grep 使用 Perl 兼容正则表达式(PCRE),这比传统的基本正则表达式(BRE)和扩展正则表达式(ERE)更强大。它允许使用更复杂的正则表达式语法,如非捕获组、正向/反向查找、断言等。
grep -oP '@\K\w+\.\w+' emails.txt
# 提取所有的电子邮件地址

正则表达式

grep 支持基本正则表达式(BRE)和扩展正则表达式(ERE),扩展模式可以使用 grep -Eegrep

  • .:匹配任意单个字符
grep 'b.t' file.txt
# 匹配 bat、bit、but 等。
  • ^:匹配行首
grep '^pattern' file.txt
# 匹配以 pattern 开头的行。
  • $:匹配行尾
grep 'pattern$' file.txt
# 匹配以 pattern 结尾的行。
  • *:匹配前一个字符的零次或多次出现
grep 'ba*t' file.txt
# 匹配 bt、bat、baat 等。
  • []:匹配字符类中的任意单个字符
grep '[aeiou]' file.txt
# 匹配包含任意[]内字母开头的行。
  • |:逻辑或,匹配左边或右边的模式(使用 -E)
grep -E 'pattern1|pattern2' file.txt
# 匹配 pattern1 或 pattern2。
  • \:转义字符
grep '\.' file.txt
# 匹配实际的点字符 .

示例

  1. 搜索文件中包含特定字符的行
grep "hello" file.txt
  1. 在多个文件中搜索特定的字符
grep "hello" file1.txt file2.txt
  1. 统计包含特定字符的行数
grep -c "hello" file.txt
  1. 递归搜索包含特定字符的文件
grep -r "hello" /opt/local/var
  1. 忽略大小写搜索特定字符
grep -i "hello" file.txt
  1. 显示匹配行的上下文
grep -C 2 "error" logfile.txt

标签:grep,pattern,命令,详解,搜索,file,匹配,txt
From: https://blog.csdn.net/promise524/article/details/141114061

相关文章

  • Spring框架中的@Bean注解详解
    Spring框架中的@Bean注解详解在Java的Spring框架中,@Bean是一个非常重要的注解,它允许开发者在注解方法中创建和配置对象,这些对象随后会被Spring容器管理。本文将通过一个简单的实例来详细解释@Bean注解的使用方法和它在Spring框架中的作用。什么是@Bean注解?@Bean注解是一......
  • 人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意
    大家好,我是微学AI,今天给大家介绍一下人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力,word2vec与代码详解。本课程面向高级人工智能算法工程师,深入讲解自然语言处理(NLP)中的关键语言模型技术,包括seq2seq模型及其增强版加入注意力机制......
  • haproxy负载均衡之-调度算法详解
    HAProxy的调度算法分为静态调度算法、动态调度算法和其他调度算法静态算法:按照事先定义好的规则轮询公平调度,不关⼼后端服务器的当前负载、链接数和响应速度等,且⽆法实时修改权重,只能靠重启HAProxy⽣效。动态算法:基于后端服务器状态进⾏调度适当调整,⽐如优先调度⾄当前负载较......
  • Python打包命令汇总
    1、pyinstaller打包环境安装:pipinstallpyinstaller 网络不好可以通过-i指定安装源:pipinstallpyinstaller-ihttps://pypi.tuna.tsinghua.edu.cn/simple/安装完成后通过:pyinstaller--version查看是否安装成功打包单个脚本:pyinstaller-F-w-ipython.icomain.py......
  • MySQL基础详解(3)
    文章目录索引普通索引创建索引修改表结构(添加索引)创建表的时候直接指定删除索引的语法唯一索引创建索引修改表结构创建表的时候直接指定使用ALTER命令添加和删除索引使用ALTER命令添加和删除主键显示索引信息约束非空约束:唯一约束:主键约束:外键约束:索引MySQL......
  • LeetCode 22. 括号生成 回溯写法详解
    22.括号生成22.括号生成题目来源题目分析题目难度题目标签题目限制解题思路核心算法步骤代码实现代码解读性能分析测试用例扩展讨论优化写法其他实现总结22.括号生成题目来源22.括号生成题目分析给定一个数字n,表示生成括号的对数,要求设计一个函数生成所......
  • LeetCode 216. 组合总和 III 回溯写法详解
    216.组合总和III216.组合总和III题目来源题目分析题目难度题目标签题目限制解题思路核心算法步骤代码实现代码解读性能分析测试用例扩展讨论优化写法其他实现总结216.组合总和III题目来源216.组合总和III题目分析题目要求找出所有相加之和为n的k......
  • 【MSF系列】命令合集
    ###生成payloadmsfvenom-pwindows/meterpreter/reverse_winhttpsLHOST=39.97.167.211LPORT=6667--platformwindows-ax86HandLerSSLCert=./my.pemStagerVerifySSLCert=true-s42--smallest-ex86/shikata_ga_nai-i9-fraw|msfvenom--platformwindows-ax86......
  • USB协议详解第6讲(USB描述符-端点描述符)
    1.USB描述符USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符。今天主要是学习USB端点描述符的组成。2.端点描述符组成前面讲了设备描述符、标准配置描述符、接口描述符,本篇我们讲解端点描述符。首先......
  • Tomcat详解
    1.安装tomcat1.去到tomcat官网下载tomcat安装包,下载的是免安装的包,解压就可用apache-tomcat-8.5.85.zip解压后的如下: 目录说明:bin存放启动和关闭Tomcat的脚本文件,比较常用的是catalina.sh、startup.sh、shutdown.sh三个文件conf存放Tomcat服务器的各种配置文......