sed命令的应用

news2025/2/25 16:14:21

sed命令的应用

  • 一、sed编辑器
    • sed的工作流程:
    • sed的命令格式于常用选项
    • 命令格式
    • 常用选项
    • 常用操作:
  • 三、实际操作
    • 打印内容
    • 删除行
    • 替换行数内容
    • 插入内容
    • 字符位置互换

一、sed编辑器

sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。

sed的工作流程:

sed工作流程主要包括读取、执行、显示三个过程。

  • 读取:sed从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)
  • 执行:默认情况下,所有的sed命令都在模式空间顺序地执行,除非
    指定了行的地址,否则sed命令将会在所有的行上一次执行。
    显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都会被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

在所有的文件内容都被处理完之前,上述过程将重复执行,直至所有内容被处理完。
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。

sed的命令格式于常用选项

命令格式

sed 选项 操作 文件
sed -f 脚本文件 文件1 文件2
sed -e 'n{
操作1
操作2

}‘文件1 文件2

常用选项

-e或者--expression=:表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f或者--file=:表示用指定的脚本文件来处理输入的文本文件
-h或--help:显示帮助
-n、--quiet或silent:禁止sed编辑器输出,但可以于p命令一起使用完成输出。
-i:直接修改目标文本文件。

常用操作:

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

三、实际操作

打印内容

查看指定行数:
在这里插入图片描述
在这里插入图片描述
显示奇数偶数
在这里插入图片描述
原理:
n表示切换到下一行,以奇数为例,当显示出第一行之后会执行p后面的n命令,n切换到下一行,也就是第三行,如何执行p显示。如此循环,直到遍历完文件所有内容。

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

删除行

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

替换行数内容

格式:
行范围s/旧字符串/新字符串/替换标记

4种替换标记:

数字:表面新字符串将替换第几处匹配的地方
g:表明新字符串将会替换所有匹配的地方
p:打印与替换命令匹配的行,与-n一起使用
w文件:将替换的结果写到文件中

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用替换时,分隔符是可以自定义的
在这里插入图片描述
加-i是修改保存的意思
在这里插入图片描述

插入内容

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

在这里插入图片描述
原理:
sed会先将指定内容复制到剪切板(临时存储空间)然后删除之前的内容,将复制的内容粘贴到指定位置。相当于剪切的作用

字符位置互换

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

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

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

相关文章

实用的 iPhone 解锁:4Easysoft iPhone Unlocker中文

4Easysoft iPhone Unlocker 是一款Mac平台上的 iPhone 解锁工具,它可以帮助用户解锁 iPhone,删除密码、Touch ID 或 Face ID,以及绕过 iCloud 账户等限制。使用 4Easysoft iPhone Unlocker,用户可以轻松地解锁 iPhone,…

CentOS 8上安装MySQL数据库

CentOS 8上安装MySQL数据库 1、确定您的服务器系统版本和其他信息: cat /etc/os-release可以按照以下步骤操作: 1、更新系统包列表 sudo dnf update2、安装MySQL数据库: sudo dnf install mysql3、启动MySQL服务: sudo syste…

maven创建web工程(图文并茂)

maven的web工程 创建步骤: 1.创建普通的maven工程 ​ 参考:略 2.打成war包 ​ 说明:普通工程打成jar包。web工程打war包。 在pom.xml中书写如下内容: 3.在普通的maven工程上生成web文件夹存放静态页面 ​ 1) …

一个00后的自述:不好好学习的我后悔了

普通人家的孩子不读书,以后你能做什么? 以下是一个00后的自述: 我是2000年出生的,父亲是建筑工人,母亲是农民,我就是一个普通人家的孩子。 小时候,其实我的学习成绩也是不错的,但…

软考A计划-真题-分类精讲汇总-第五章(信息安全)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

JavaWeb技术栈

一个网页是怎么运行的? 首先网页想要运行,需要有静态资源他们负责页面的展示,如果我们想要页面产生互动效果,我们需要动态资源进行逻辑处理。同时,我们还需要数据库来存取数据。 进入一个网站,浏览器向服…

物联网时代25大开源IoT框架

相当长一段时间以来,互联网一直被用来连接人类并简化生活,这是21世纪初的启示。今天,我们将讨论各种物联网框架 —— 现在,我们正在进入一个基于互联网技术的新世界,该世界不仅连接人,而且还连接事物。因此…

实现分布式团队协作一体化的方法与技巧

多年来,零工经济平台的迅速兴起通过将自由职业者与支持按任务付费的企业联系起来,创造了多样化的就业机会。然而,能够接受临时工作安排既是福音又是祸根。在亚太地区,84%的招聘经理将工作外包给自由职业者。这背后的一个明显动机是…

Java对象创建和内存分配

Java对象创建流程如下步骤 判断是否加载类 当Java虚拟机执行一条new指令时,首先会检查这个指令的参数是否能在常量池中定位到类的符号引用,并且检查该类是否被加载、验证、准备、解析和初始化过。如果没有则执行加载过程。 给对象分配内存 对象所需的大…

【云原生】K8s管理工具--Kubectl(一)

Kubectl管理 一、陈述式管理1、陈述式管理方式2、Kubernetes相关信息查看3、查看节点状态4、命名空间操作5、deployment/pod操作6、扩缩容7、增加删除label 二、声明式管理1、声明式管理方式2、查看资源配置清单3、解释资源配置清单4、修改资源配置清单并应用5、删除资源配置清…

高级篇十三、事务基础知识

第13章_事务基础知识 1、数据库事务概述 事务是数据库区别文件系统的重要特性之一,当我们有了事务会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统的崩溃而丢失&#…

网络通信-路由交换基础

目录 一、一个简单网络通信(1v1) 二、通信介质 三、交换机通信原理(3v3、5v5) 广播的概念 交换机转发消息时,怎么知道该发给哪个设备 四、路由器通信原理(500v500、5000v5000) 五、消息分…

App Inventor 2 算法之 - 二分算法(Binary Search)实现,快速查找定位

应用介绍 二分算法(Binary Search)是生活中非常常用的折半算法,能解决快速查找、快速定位的问题,主要用到数学和逻辑代码块。 本示例程序演示了采用普通遍历的方式和二分的方式分别需要几次能够猜中随机给出的数字。 二分算法&a…

k8s-CKS真题-故障排查Sysdig falco

目录 题目环境搭建安装sysdig创建容器创建目录、文件 解题 - sysdig解题 - falco错误模拟环境参考 题目 Task: 使用运行时检测工具来检测 Pod tomcat123 单个容器中频发生成和执行的异常进程。 有两种工具可供使用:sysdigfalco注:这些工具只…

如何有效提高企业优秀人才的留存率?

对于企业而言,有效的员工入职流程应是一个持续的项目。优秀人才使企业持续性发展的基石,那么该如何提高企业优秀人才的留存率呢? 有调查显示新员工入职后短时间内离职的比率日益上升,因此做好员工入职,短时间内增加员工…

msvcp140.dll是什么东西

昨天在打开photoshop软件的时候,突然间就提示msvcp140.dll丢失,无法打开运行。msvcp140.dll是什么东西呢?今天早上用了一个上午的时间,特意搞清楚了msvcp140.dll是什么以及如何修复电脑msvcp140.dll文件丢失问题。下面小编就把整理…

八年软件测试感悟--写给还在迷茫的你

不知不觉已经从事软件测试八年了,2015毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。八年的时间过得真快。 长期的测试工作也让我对软件测试有了比较深入的认识。但是我至今还是一个底层的测试人员,我的看法都比较狭隘&…

热乎的面经——水滴石穿

⭐️前言⭐️ 本文记录博主面试北京某大厂所记录的面经,回答答案仅供参考。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 …

公网SSH远程访问家中的树莓派[无公网IP]

文章目录 前言如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址…

计算机视觉的深度学习 Lecture4:Regularization + Optimization 笔记 EECS 498.008

课件非常好! 数值计算梯度 问题是慢,每个都要注意做步长,求除法。 应该用求导方法解决。 SGD通过每次抽取一部分(mini-batch)来计算梯度,而不是遍历整个数据集来求梯度,大大增大了求梯度速…