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

相关文章

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

文本编辑器-Vim

http://www.vim.org/ 简单介绍 Vim是一种高度可配置的文本编辑器,用于创建和更改任何类型的文本非常高效。它与大多数UNIX系统和苹果OS X一起被列为 “vi”。 Vim是稳定的,并且不断被开发以变得更好。 其功能包括: 1. 持久的,多级的撤消树 2. 广泛的插件系统 3. 支持数百种编程语言和文件格式 4. 强大的搜索和替换 5. 与许多工具集成 下载

Win8下如何快速查找和删除电脑中的病毒

Win8系统如何查找和删除病毒?检查你的电脑是否存在病毒的一种快速方法是使用 Windows Defender. 此恶意软件防护随 Windows 提供,可帮助识别和删除病毒、间谍软件和其他恶意软件。   注意:如果你使用的是 Windows RT,则 Windows Defender 会始终启用,并且不能关闭。   如果你使用的是 Windows 8,则可以根据自己的喜好运行由其他

nyoj 685 查找字符串

当初一开始没做出来。 后来,学习过一段时间之后,在返回来做这道题,忽然发现,map类容器可以做。 PS:需要注意的是:此题如果用c++的输入输出的话,会超时。 O(time):gets()<  scanf() < cin。   附上代码: #include<stdio.h>#include<map>#include<string>#include<string.h>usin

【C++二分查找】2439. 最小化数组中的最大值

本文涉及的基础知识点 C++二分查找 LeetCode2439. 最小化数组中的最大值 给你一个下标从 0 开始的数组 nums ,它含有 n 个非负整数。 每一步操作中,你需要: 选择一个满足 1 <= i < n 的整数 i ,且 nums[i] > 0 。 将 nums[i] 减 1 。 将 nums[i - 1] 加 1 。 你可以对数组执行 任意 次上述操作,请你返回可以得到的 n

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

notepad++ 正则表达式多条件查找替换

基础语法参考: https://www.cnblogs.com/winstonet/p/10635043.html https://www.linuxidc.com/Linux/2019-05/158701.htm   通常情况下我们查找的内容和要被替换掉的内容是一样的,我们只需要使用正则表达式精确框定查找内容,替换直接输入要替换的内容即可。 但有时会比较复杂,查找的内容,只需要替换其中

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。