Grep文本查找和sed文本编辑

2024-06-22 18:32

本文主要是介绍Grep文本查找和sed文本编辑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

grep匹配字符

三种正则引擎参数:

  • -G:POSIX基本正则表达式,BRE
  • -E:POSIX扩展正则表达式,ERE
  • -p:Perl正则表达式,PCRE
    语法:
grep [参数] PATTERN [file]
  • -c:只打印每个file中的匹配行数目
  • -i:忽略大小写
  • -n:输出的同时打印行号
  • -v:反选,输出不匹配行的内容
  • -r:递归匹配查找
  • -R:递归匹配查找,但会遍历所有符号链接
  • -A n:n为正整数,表示after,除了列出匹配行之外,还列出后面的n行
  • -B n:n为正整数,表示before,除了列出匹配行之外,还列出前面的n行

实例1:
使用参数-R递归查找满足条件的文件

grep -R sh /etc/passwd

在这里插入图片描述
实例2:
使用参数-n输出查找内容和行号

grep -n sh /etc/passwd

在这里插入图片描述
实例3:
使用参数-i忽略大小写输出内容

grep -i SH /etc/passwd

在这里插入图片描述
实例4:
使用参数-v屏蔽匹配的相关行,输出内容

grep -v usr /etc/passwd

在这里插入图片描述
实例5:
使用参数-B n输出满足条件的内容前5行内容:

grep -B 5 lcc /etc/passwd

在这里插入图片描述

grep匹配字符

字符匹配:

字符说明
.匹配除“\n”以外的任何单个字符
\转义字符,将下一个字符标记为特殊字符或原义字符
[…]匹配指定范围内的任意字符
[^…]匹配任何不在指定范围内的任意字符
\d匹配0-9的数字
\D匹配除了0-9的任意字符
\w匹配单个数字或字符或者下划线(),相当于[0-9a-zA-Z]
\W匹配非数字或字符或下划线(),相当于[^0-9a-zA-Z]
\s匹配一个空白字符
\S匹配非空字符,相当于[^\s]

实例1:
使用匹配字符.,查询c*n的字符

grep -n 'c.n' blankspace.txt

在这里插入图片描述
实例2:
使用匹配字符[…],查询带vr的字符

grep -n '[vr]' blankspace.txt

在这里插入图片描述
实例3:
使用匹配字符\d,查询p加数字加p的字符和查询p加非数字加p的字符

grep -n 'p\dp' blankspace.txt
grep -n 'p-Dp' blankspace.txt

在这里插入图片描述

实例4:
匹配字符\w,查找y+单个字符+g的字符

grep -n 'y\wg' blankspace.txt

在这里插入图片描述
实例5:
使用匹配字符\s,查找n+空白字符+r的字符

grep -n 'n\s+r' blankspace.txt

在这里插入图片描述

数量匹配

量词说明
{n}匹配确定的n次
*匹配前面的子表达式零次或多次 l
+匹配前面的子表达式一次或者多次
?匹配前面的子表达式零次或者一次
{n,}至少匹配n次
{n,m}最少匹配n次且最多匹配m次,n<=m

实例1:
使用*,匹配lo开头的字符

grep -n 'lo*' blankspace.txt

在这里插入图片描述

位置匹配

限字符说明
^匹配输入字符串的开始位置
$匹配输入字符串的结束位置
\b匹配单词的边界位置
\B匹配不是单词边界的位置

实例1:
^

grep -n '^Lo' blankspace.txt

在这里插入图片描述
实例2:
$

grep -n 'd$' blankspace.txt

在这里插入图片描述
实例3:
\b

grep -n 's\b' blankspace.txt

在这里插入图片描述
实例4:
\B

grep -n 's\B' blankspace.txt

在这里插入图片描述

其他字符说明

字符说明
[:alnum:]表示所有十进制数字和英文字符
[:alpha:]表示所有英文字母
[:lower:]表示所有小写字母
[:upper:]表示所有大写字母
[:digit:]表示所有数字
[:blank:]表示空格键和[tab]键
[:cntrl:]表示键盘上的控制键即tab,delete
[:graph:]包含[:alnum:],[:punct:]
[:print:]表示任何可以被输出的字符
[:punct:]表示标点符号,即:"’?!;:#$…
[:space:]表示任何会产生空白的字符,空格键,tab键
[:xdigit:]表示16进制的数字

实例1:

grep -n '[[:alnum:]]r' blankspace.txt

在这里插入图片描述
实例2:

grep -n '[[:digit:]]' blankspace.txt

在这里插入图片描述
实例3:

grep -n '[[:punct:]]' blankspace.txt

在这里插入图片描述
实例4:

grep -n '[[:upper:]]o' blankspace.txt

在这里插入图片描述
实例5:

grep -n '[[:xdigit:]]b' blankspace.txt

在这里插入图片描述

扩展正则表达式(ERE)

使用方法:

grep -E
egrep

量词匹配:
+

egrep -n 'lo+' blankspace.txt

在这里插入图片描述
?

egrep -n 'an(n)?' blankspace.txt 

在这里插入图片描述

{n}

egrep -n 'o{2}' blankspace.txt

在这里插入图片描述
{n,m}

egrep -n 'o{1,3}' blankspace.txt

在这里插入图片描述
逻辑与分组匹配
|

egrep -n 'ss|oo' blankspace.txt

在这里插入图片描述
()

egrep -n 'Lo(ve|ok)' blankspace.txt

在这里插入图片描述

sed匹配字符

sed命令格式:

sed [参数] ... [执行命令] [输入文件]...

参数:

  • -n:安静模式,只打印受影响的行,默认打印输入数据的全部内容
  • -e:用于在脚本中添加多个执行命令一次执行,在命令行中执行多个命令通常不需要加该参数
  • -f filename:指定执行filename文件中的命令
  • -r:使用扩展正则表达式,默认为标准正则表达式
  • -i:将直接修改输入文件内容,而不是打印到标准输出设备

执行命令的格式:

[n1][,n2]command
[n1][~step]command
  • s:行内替换
  • c:整行替换
  • a:插入到指定行的后面
  • i: 插入到指定行的前面
  • p:打印指定行,通常与-n参数配合使用
  • d:删除指定行

实例1:
删除指定行:

nl blankspace.txt | sed '2,5d'

在这里插入图片描述
实例2:
添加字符串,a表示在行后面一行添加字符串,i表示在行前面一行添加字符串

nl blankspace.txt | sed '2a test'

在这里插入图片描述
实例3:
替换字符串

nl blankspace.txt | sed '2,5c blankspace'

在这里插入图片描述
实例4:
列出blankspace.txt内的第5到7行

nl blankspace.txt | sed -n '5,7p'

在这里插入图片描述

这篇关于Grep文本查找和sed文本编辑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085080

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取