文本三剑客正则表达式2

news2025/1/12 22:46:49

文章目录

  • 文本三剑客&正则表达式2
    • 1 sed
    • 2 sed命令的常用选项
    • 3 sed命令的操作符
    • 4 打印
      • 4.1 按照行号寻址打印
        • 4.1.1 只打印第二行
        • 4.1.2 只显示行号
        • 4.1.3 显示行号及内容
        • 4.1.4 只打印最后一行
      • 4.2 进行行号范围区间的打印
        • 4.2.1 打印1-3行
        • 4.2.2 打印第二行到最后一行
        • 4.2.3 打印2-4行
      • 4.3 指定间隔打印
        • 4.3.1 打印第二行和最后一行
      • 4.4 对奇数行和偶数行的打印
        • 4.4.1 打印偶数行(n:跳过第一行,打印第二行)
        • 4.4.2 打印奇数行(n:打印第一行,跳过下一行,继续打印)
      • 4.4 文本模式过滤行内容
        • 4.4.1 对包含的字符串进行过滤打印
      • 4.5应用基础正则表达式进行打印
        • 4.5.1 打印以root开头的行
        • 4.5.2 打印以bash结尾的行
        • 4.5.3 从第四行开始,一直打印到第一个以bash为结尾的所在行
      • 4.6 使用扩展正则表达式进行打印
    • 5 删除
      • 5.1 通过行号进行删除
        • 5.1.1 删除所有,什么也不打印
        • 5.1.2 只删除第三行
        • 5.1.3 删除2-4行
        • 5.1.4 删除第2行到最后一行
        • 5.1.5 除了2-4行,别的都删除
      • 5.2 匹配字符串内容删除
        • 5.2.1 删除包含111的行
        • 5.2.2 删除包含111和222的行
        • 5.2.3 除了111和222,别的行都删了
        • 5.2.4 字符串搭配正则进行删除
      • 5.3 删除空行
    • 6 替换
      • 6.1 指定第二个root,替换为了test
      • 6.2 把所有的root改成test
      • 6.3 把root开头的空格替换成#注释掉
      • 6.4 把大写改成小写
      • 6.5 把小写改成大写
      • 6.6 把有aaa的行全部整行替换成qzz
      • 6.7 把单字符a和6分别替换成q和z
    • 7 增加
      • 7.1 在111这行下面插入three
      • 7.2 在333的前一行插入four
      • 7.3 先读取test1里面的内容,把他插入到test2的行后
      • 7.4 sed命令中字符串和字符的位置交换

文本三剑客&正则表达式2

1 sed

主要是对文件内容按照行的方式进行增删改查

工作流程

sed的工作流程主要包括**读取、执行和显示**三个过程
在这里插入图片描述

  • 读取

    • sed从输入流 (文件、管道、标准输入) 中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space )
  • 执行

    • 默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed命令将会在所有的行上依次执行
  • 显示

    • 发送修改后的内容到输出流
    • 在发送数据后,模式空间将会被清空在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完

注意:默认情况下所有的sed命令都是在模式空间内执行的

因此**输入的文件并不会发生任何变化,除非使用"sed -i"修改源文件**、或使用重定向输出到新的文件中

2 sed命令的常用选项

-e 或–expression= 表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用

-f 或–file= 表示用指定的脚本文件来处理输入的文本文件。

-h 或–help显示帮助。

-i 直接修改目标文本文件

-n 仅显示script处理后的结果

3 sed命令的操作符

操作符作用
s替换指定字符
d删除选定的行
a在当前行下面增加一行指定内容
i在选定行上面插入一行指定内容
c将选定行替换为指定内容
y字符转换,转换前后的字符长度必须相同
p打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出 其通常与“-n”选项一起使用
=打印行号
l打印数据流中的文本和不可打印的ASCII字符,比如结束符$、制表符\t

4 打印

4.1 按照行号寻址打印

sed有一个默认输出,加上P,会打印两遍,因此需要加上-n,禁止默认输出
在这里插入图片描述
在这里插入图片描述

4.1.1 只打印第二行

在这里插入图片描述

4.1.2 只显示行号

在这里插入图片描述

4.1.3 显示行号及内容

在这里插入图片描述

4.1.4 只打印最后一行

在这里插入图片描述


4.2 进行行号范围区间的打印

4.2.1 打印1-3行

在这里插入图片描述

4.2.2 打印第二行到最后一行

在这里插入图片描述

4.2.3 打印2-4行

在这里插入图片描述

4.3 指定间隔打印

在这里插入图片描述

4.3.1 打印第二行和最后一行

在这里插入图片描述

4.4 对奇数行和偶数行的打印

4.4.1 打印偶数行(n:跳过第一行,打印第二行)

在这里插入图片描述

4.4.2 打印奇数行(n:打印第一行,跳过下一行,继续打印)

在这里插入图片描述


4.4 文本模式过滤行内容

4.4.1 对包含的字符串进行过滤打印

打印包含a的所有行
在这里插入图片描述

4.5应用基础正则表达式进行打印

4.5.1 打印以root开头的行

在这里插入图片描述

4.5.2 打印以bash结尾的行

在这里插入图片描述

4.5.3 从第四行开始,一直打印到第一个以bash为结尾的所在行

在这里插入图片描述

4.6 使用扩展正则表达式进行打印

sed -r 支持扩展正则表达式

同时在 使用{n}、{n,}、{n,m}时,括号{}前不需要加反斜杠\

包含有两个99:的内容所在行
在这里插入图片描述

5 删除

5.1 通过行号进行删除

5.1.1 删除所有,什么也不打印

在这里插入图片描述

5.1.2 只删除第三行

在这里插入图片描述

5.1.3 删除2-4行

在这里插入图片描述

5.1.4 删除第2行到最后一行

在这里插入图片描述

5.1.5 除了2-4行,别的都删除

在这里插入图片描述

5.2 匹配字符串内容删除

5.2.1 删除包含111的行

在这里插入图片描述

5.2.2 删除包含111和222的行

在这里插入图片描述

5.2.3 除了111和222,别的行都删了

在这里插入图片描述

5.2.4 字符串搭配正则进行删除

5.3 删除空行

  • 删除空行的三种方法
    在这里插入图片描述
grep -v "^$" test1.txt 		----过滤出非空行

cat test1.txt |tr -s "\n" 	----压缩换行符

sed '/^$/d' test1.txt 		----删除空行

6 替换

s:替换字符串(替换内容长度可不一致)

c:整行替换

y:字符替换,替换前后的字符串长度必须相同

6.1 指定第二个root,替换为了test

在这里插入图片描述

6.2 把所有的root改成test

在这里插入图片描述

6.3 把root开头的空格替换成#注释掉

在这里插入图片描述

6.4 把大写改成小写

l&是转换小写的一种特殊的符号,前面要加转义符“\”
在这里插入图片描述

6.5 把小写改成大写

u&是转换首字母大写的一种特殊的符号,前面要加转义符“\”
在这里插入图片描述

6.6 把有aaa的行全部整行替换成qzz

在这里插入图片描述

6.7 把单字符a和6分别替换成q和z

在这里插入图片描述


7 增加

a:在下一行添加内容

i:在上一行插入内容

r:在行后读入文件内容

7.1 在111这行下面插入three

在这里插入图片描述

7.2 在333的前一行插入four

在这里插入图片描述

7.3 先读取test1里面的内容,把他插入到test2的行后

在这里插入图片描述

7.4 sed命令中字符串和字符的位置交换

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作符续(整型提升与算术转换)

🤩本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽&#xff0c…

MySQL深入浅出: order by if()与order by in()之条件排序

目录 1:原表数据 2:order by if() 3:order by in() 4:社区地址 1:原表数据 2:order by if() SELECT * FROM people ORDER BY IF(…

mysql数据库的表的增删查改

目录 表的增删查改 6.1:增加 6.2:查找 6.3:更新 6.4:删除 6.5: 插入查询结果 6.6:聚合函数 6.7:group by分组 关键字的先后顺序:from > on> join > where > gro…

C语言实现三子棋小游戏

目录 游戏介绍 游戏菜单的创建(menu) 游戏核心功能实现 棋盘的初始化(InitBoard) 棋盘的展现(printfboard) 玩家下棋(playerBoard) 电脑下棋(computerBoard&#…

探究C++构造函数及其优化

目录 一、 类的六个默认成员函数1.1 框架图1.2 具体介绍(1)构造函数(2)析构函数(3)拷贝构造函数(4)赋值运算符重载函数 归纳我们不写,编译器默认生成了什么: …

2023宁波市赛 天一永安杯赛前模拟题部分wp

Web pop 进hint.php 伪协议读index.php <?php class Tiger{public $string;protected $var;// 恶意参数public function __construct($var){$this->var $var;}public function __toString(){return $this->string;}public function boss($value){// 0eval($valu…

自动化测试作为软件测试的一种技术手段,时常被大家讨论

自动化测试作为软件测试的一种技术手段&#xff0c;时常被大家讨论。本人在自动化技术方面有过略有小成&#xff0c;今天聊一聊关于自动化的一些误区&#xff0c;以帮助新手能正确的了解和认识自动化一些概念。 测试的行为本质是什么&#xff1f; 为什么先从这个概念开始谈起&…

OpenGL之创建窗口

目录 什么是OpenGL&#xff1f; 核心模式与立即渲染模式 立即渲染模式 (Immediate mode) 核心模式(Core-profile) 状态机 对象 创建窗口 配置环境 什么是OpenGL&#xff1f; 一般它被认为是一个API(Application Programming Interface, 应用程序编程接口)&#xff0c;…

黑客最常用的10款黑客工具

以下所有这些工具都是捆绑在一起的Linux发行版&#xff0c;如Kali Linux或BackBox&#xff0c;所以我们一定会建议您安装一个合适的Linux黑客系统&#xff0c;使您的生活更轻松 - 尤其是因为这些黑客工具可以&#xff08;自动&#xff09;更新。 1、Nikto&#xff08;网站漏洞…

中断与freeRTOS任务进行同步

S32K144在做CAN通信时&#xff0c;通过FlexCAN中断接收CAN数据&#xff0c;并希望让freeRTOS 的CAN处理任务拿到CAN数据并进行数据处理。因此就需要找到能够满足中断与freeRTOS任务进行同步的方式方法。 遇到这个问题&#xff0c;第一时间想到的就是查找freeRTOS手册《FreeRTO…

Spring 拦截器

目录 今日良言&#xff1a;心若有所向往&#xff0c;何惧道阻且长 一、Spring 拦截器 1.拦截器简介 2.实现自定义拦截器 今日良言&#xff1a;心若有所向往&#xff0c;何惧道阻且长 一、Spring 拦截器 1.拦截器简介 Spring Boot 拦截器是面向切面编程-----AOP 的具体实现…

人工智能基础部分17-隐马尔科夫模型在序列问题的应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分16-隐马尔科夫模型在序列问题的应用&#xff0c;隐马尔可夫模型(HMM)是一种统计模型&#xff0c;广泛应用于各种领域&#xff0c;如语音识别、自然语言处理、生物信息学等。本文将介绍隐马尔可夫模…

杂记——25.eclipse如何连接并实现对数据库的操作

这篇文章我们来讲一下eclipse&#xff08;即编辑器&#xff09;如何连接并实现对数据库的操作&#xff0c;这里以eclipse为主连讲解演示一下。 第一步&#xff1a; 查看我们本机安装的数据库的版本&#xff0c;即查看我们本机是否安装了数据库 在命令提示窗口输入&#xff1…

games103——作业3

实验三主要使用FEM和hyperelastic模型完成弹性体的模拟 完整项目已上传至github。 文章目录 Linear finite element method(FEM)二维空间有限元方法变形梯度(Deformation Gradient)格林应变(Green Strain)应变能量密度函数(Strain Energy Density Function)力(Force) Finite Vo…

威胁猎人 | 2018年上半年国内公有云云上资产合规现状报告

声明&#xff1a;本报告版权属于威胁猎人情报中心&#xff0c;并受法律保护。转载、摘编或利用其它方式使用本报告文字或者观点的&#xff0c;应注明“来源&#xff1a;威胁猎人”。违反上述声明者&#xff0c;将追究其相关法律责任。 一、报告背景 自2005年亚马逊发布AWS伊始…

基于nodejs+vue3 的高仿网易云音乐

大家好&#xff0c;我是小寻&#xff0c;欢迎大家关注我的公众号&#xff1a;工具优选&#xff0c;加入前端、java群聊哦&#xff01; 今天给大家分享一个超高水准的项目&#xff1a;基于nodejsvue3研发的高仿网易云音乐&#xff0c;项目内容出自寻码网&#xff01; 技术栈&a…

行业唯一丨冠珠瓷砖荣获人民日报社“ESG年度案例”

践行社会责任&#xff0c;推动品牌高质量发展。5月11日&#xff0c;由人民日报社指导、人民日报社经济社会部主办的“中国企业社会责任高峰论坛”在上海盛大举行。 本次论坛围绕乡村振兴、共同富裕、绿色低碳等重点议题进行深入研讨&#xff0c;邀请国家发展和改革委员会、商务…

Thread线程学习(2) Linux线程的创建、终止和回收

目录 1.首先要了解什么是线程ID&#xff0c;以及它的作用是什么 2.创建线程 3.终止线程 4.回收线程 5.总结 在Linux系统中&#xff0c;线程是轻量级的执行单元&#xff0c;能够在同一个进程中并发执行。本文将介绍如何在Linux环境下创建、终止和回收线程&#xff0c;并提供…

〖Web全栈开发③〗—HTTP协议和静态web服务器

HTTP协议和静态web服务器 &#xff08;一&#xff09;三次握手和四次挥手&#xff08;二&#xff09;HTTP协议2.1 HTTP协议的定义2.2 HTTP协议的组成 &#xff08;三&#xff09;搭建python自带静态web服务器3.1 静态web服务器是什么3.2 如何搭建python自带的静态web服务器3.3 …