文本三剑客之——sed编辑器

news2025/1/16 1:38:19

sed编辑器

  • sed编辑器
    • sed基础语法
    • sed查询
    • sed删除
    • sed 替换
    • sed 插入

sed编辑器

  • sed是文本处理工具,依赖于正则表达式,可以读取文本内容,工具指定条件对数据进行添加、删除、替换等操作,被广泛应用于shell脚本,以完成自动化处理任务。
  • sed在处理数据时默认不直接修改原文件,而是把当前处理的行存储在临时缓存区中,所有指令都在缓冲区中操作,处理完成后,把缓冲区内容默认输出到屏幕,接着处理下一行内容,这样不断重复,直到文件末尾,文件本身内容没有改变
  • sde是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
  • 编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。

sed基础语法

  • 命令语法:

    • sed 选项 ‘编辑命令’ 文件1 文件2
  • 常用选项

选项作用
-e指定要执行的命令,只有一个编辑命令时可省略。
-n只输出处理后的行,读入时不显示
-i直接编辑文件,而不输出结果
-f表示用指定的脚本文件来处理输入的文本文件
-h显示帮助
  • 编辑指令格式:

    • 【地址1】 【,地址2】 操作 【参数】
    • 与grep一样,Sed在文件查找是也可以使用正则表达式和各种元字符。这里的“地址”就可以是正则表达式,也可以是数字、$,如果没有地址就代表是所有的行。
  • 常用的“操作”及作用

指令作用
p输出指定的行
d删除指定的行
s字串替换,格式:‘行范围 s/旧字符串/新字符串/g’
r读取指定文件
w保存为文件
i插入,在当前行前面插入一行或多行
a插入,在当前行下面插入一行或多行
q表示退出
H复制
G粘贴

sed查询

  • sed -n ‘行号p’ :查看指定行信息

  • sed ‘5q’ :打印前5行信息后退出,q表示退出

  • sed -n ‘行1,行2p’ :查看从行1到行2的信息

  • sed -n ‘行1,+np’ :查看行1及行1后的n行信息

  • sed -n ‘3 {p;n;n;p}’ :n可以帮我们实现换行,p实现打印

  • sed -n ‘/字符串/ p’ :打印包含字符串的行

  • sed -n ‘/正则表达式/ p’ :打印所有包含正则能够匹配到的内容的行

使用演示:
sed -n ‘行号p’ :查看指定行信息
在这里插入图片描述
sed -n ‘行1,行2p’ :查看从行1到行2的信息

在这里插入图片描述
sed -n ‘行1,+np’ :查看行1及行1后的n行信息

在这里插入图片描述
sed -n ‘3 {p;n;n;p}’ :n可以帮我们实现换行,p实现打印
在这里插入图片描述
在这里插入图片描述
sed -n ‘/字符串/ p’ :打印包含字符串的行

在这里插入图片描述

sed -n ‘/正则表达式/ p’ :打印所有包含正则能够匹配到的内容的行

在这里插入图片描述

sed删除

sed ‘行号 d’ : 删除指定行号的行

sed ‘行1,行2 d’ : 删除行1与行2之间的行

sed ‘/字符串/ d’ :删除包含字符串的行

sed ‘/正则表达式/ d’ :删除所有包含正则能够匹配的到的内容的行

sed ‘行号,/字符串/ d’ :删除从指定行到第一个包含字符串的行

sed ‘/字符串1/,/字符串2/ d’ :从第一个字符串1的行开始删除到 第一个扫描到的字符串2的行,之后会继续扫描包含字符串1的行,然后继续执行删除和扫描字符串2的操作

使用演示:
sed ‘行号 d’ : 删除指定行号的行
在这里插入图片描述
sed ‘行1,行2 d’ : 删除行1与行2之间的行

在这里插入图片描述
sed ‘/字符串/ d’ :删除包含字符串的行
在这里插入图片描述

sed ‘/正则表达式/ d’ :删除所有包含正则能够匹配的到的内容的行
在这里插入图片描述

sed ‘行号,/字符串/ d’ :删除从指定行到第一个包含字符串的行
在这里插入图片描述

sed ‘/字符串1/,/字符串2/ d’ :从第一个字符串1的行开始删除到 第一个扫描到的字符串2的行,之后会继续扫描包含字符串1的行,然后继续执行删除和扫描字符串2的操作
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

sed 替换

  • sed ‘s/旧字符/新字符/’ :替换每行匹配到的第一个旧字符
  • sed ‘s/旧字符/新字符/n’ : 替换每行匹配到的第n个旧字符
  • sed ‘s/旧字符/新字符/g’ :替换每行匹配到的所有旧字符
  • sed ‘s/旧字符/新字符/w file’ :把替换后的行内容保存到指定文件
    • sed -n ‘s/旧字符/新字符/gp’ > file
  • sed ‘行号 s/旧字符/新字符/’ : 替换指定行的第一个匹配到的的字符串 最后加上g就是替- 换所有匹配到的旧字符
  • sed ‘行1,行2 s/旧字符/新字符/g’ :替换行1与行2区间的匹配行的对应的字符串
  • sed ‘/字符串/ s/旧字符/新字符/g’
  • sed ‘/正则表达式/ s/旧字符/新字符/g’
  • s/xx/xx/:后面的替换分隔符可以使用其他字符代替,需要确保三个分隔字符保持一致
  • sed ‘行号c xxxx’ 替换指定行的整行内容
  • sed ‘y/abc/123/’ 替换所有相对应的字符功能类似tr

使用演示:
== sed ‘s/旧字符/新字符/替换选项’ 替换选项可以指定第几个旧字符进行替换,g表示全行替换==
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sed ‘s/旧字符/新字符/w file’ :把替换后的行内容保存到指定文件
在这里插入图片描述
== sed -n ‘s/旧字符/新字符/gp’ > file ==
在这里插入图片描述
sed ‘行号 s/旧字符/新字符/’ : 替换指定行的第一个匹配到的的字符串 最后加上g就是替- 换所有匹配到的旧字符
在这里插入图片描述
sed ‘行1,行2 s/旧字符/新字符/g’ :替换行1与行2区间的匹配行的对应的字符串
在这里插入图片描述

sed ‘/字符串/ s/旧字符/新字符/g’
在这里插入图片描述

sed ‘/正则表达式/ s/旧字符/新字符/g’
在这里插入图片描述

s/xx/xx/:后面的替换分隔符可以使用其他字符代替,需要确保三个分隔字符保持一致
在这里插入图片描述
在这里插入图片描述

sed ‘行号c xxxx’ 替换指定行的整行内容

在这里插入图片描述

sed ‘y/abc/123/’ 替换所有相对应的字符功能类似tr
在这里插入图片描述

sed 插入

  • sed ‘行号i xxxx’ :在指定行上面插入xxxx

  • sed ‘行号a xxxx’ :在指定行下面插入xxxx

  • sed ‘行号r file’ :在指定行下面读取文件内容

  • sed ‘/root/{H;d};$G’ /etc/passwd :将包含root的行剪切到末尾,H表示复制;G表示粘贴

  • sed ‘1,2H;3,4G’ /etc/passwd :将1到2行复制到3和4行下面

  • echo “111222333” | sed -r ‘s/(111)(222)/\2\1/’ :将字符111和222互换位置

使用演示:
sed ‘行号i xxxx’ :在指定行上面插入xxxx
在这里插入图片描述
sed ‘行号a xxxx’ :在指定行下面插入xxxx

在这里插入图片描述

sed ‘行号r file’ :在指定行下面读取文件内容
在这里插入图片描述

sed ‘/行数/{H;d};$G’ :将指定行剪切到末尾,H表示复制;G表示粘贴
在这里插入图片描述

sed ‘1,2H;3,4G’ :将1到2行复制到3和4行下面
在这里插入图片描述

echo “111222333” | sed -r ‘s/(111)(222)/\2\1/’ :将字符111和222互换位置
在这里插入图片描述

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

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

相关文章

【交直流保护用HJZ-Y910静态中间继电器 性能稳定功耗小 JOSEF约瑟】

品牌:JOSEF约瑟,型号:HJZ-Y910,名称:静态中间继电器,额定电压:48220VDC;48415VAC,触点容量:250V/5A,功率消耗:≤5W,动作时…

Linux的常见指令(下)

常见指令以及权限理解(下) 基础指令的继续学习,本篇博客是对于Linux的大部分常见指令的学习和使用,指令的选项都是比较常用的,基本的复制移动,删除文件or目录,查看文件的三种方式cat、more、le…

区块链技术方向的就业前景

区块链技术是一个快速发展的领域,目前正在被越来越多的企业和组织广泛应用。区块链技术在金融、物流、医疗、社交媒体等众多领域都有着广泛的应用。因此,区块链技术方向的就业前景非常乐观。 区块链技术是新一代信息技术的重要组成部分,区块…

SpringBoot 发送邮件(四十三)

从头开始,并不意味着失败,相反,正是拥抱成功的第一步,即使还会继续失败 上一章简单介绍了 SpringBoot 整合 ES (四十二), 如果没有看过,请观看上一章 一. 发送邮件 关于发送邮件的功能和基础知识,老蝴蝶这儿就不重点…

NodeJs在Linux下使用的各种问题

环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linux下Nodejs安装(完整详细) 如果想解决问题的话,输入下面的命令即可…

Sentinel-1的GRD和SLC数据的区别和联系

目录 01 前言 02 Sentinel1下载时的基本参数解释 2.1 卫星平台 2.2 产品类型 03 SLC数据和GRD数据的区别 3.1 处理过程的区别 3.2 处理操作的一点解释 3.2.1 为什么要做地形辐射校正? 3.2.2 多普勒地形校正和地形辐射校正的区别? 01 前言 最近…

【软考数据库】第十二章 事务管理

目录 12.1 事务的基本概念 12.2 数据库的并发控制 12.3 数据库的故障与恢复 12.3.1 事务故障 12.3.2 系统故障 12.3.3 介质故障 12.3.4 数据库备份 12.4 数据库的安全性与完整性 前言: 笔记来自《文老师软考数据库》教材精讲,精讲视频在b站&am…

B2B2C商城系统怎么挑选好?

B2B2C商城它不仅提供B2B模式下的批量交易,还为消费者提供了B2C模式的优质购物体验,因此,越来越多的企业或商家开始重视B2B2C商城系统的搭建,如目前的SHOP、Magento等商城系统。那么,如何挑选合适的B2B2C商城系统呢&…

接口自动化测试—如何实现多套环境的自动化测试?

在敏捷迭代的项目中,通常会将后台服务部署到多套测试环境。那么在进行接口自动化测试时,则需要将服务器的域名进行配置。使用一套接口测试脚本,通过切换域名地址配置,实现多套环境的自动化测试。 实战练习 分别准备两套测试环境…

ffmpeg合并多张图片为视频,加转场

需求是合并多个图片为视频,并在每个图片衔接处加入转场特效,第一种方式是用fade做转场,第二种方式是xfade做转场,xfade的转场特效更多,建议用这个。如果对你有帮助,点赞收藏。 第一种:直接用fa…

实验十 超市订单管理系统综合实验

实验十 超市订单管理系统综合实验 应粉丝要求,本博主帮助实现基本效果! 未避免产生版权问题,本项目博主不公开源码,如果您遇到相关问题可私聊博主! 一、实验目的及任务 通过该实验,掌握利用SSM框架进行系…

涂鸦智能幻彩灯带开发包,如何帮助开发者寻找创意?

如果你常看短视频,一定被各种炫酷的幻彩灯带产品刷屏过。随着智能幻彩灯带的问世,其玩法也愈加丰富。比如支持用户对灯带上的每一颗灯珠实现亮度和颜色的单独调节,并专属自定义你想要的场景模式,呈现出花式的动态灯光效果。 而且…

【采访】 | “标准化推动车辆诊断的质量和效率”

机动车产业/行业(Mobility Industry)的变化速度比以往任何时候都快,电动和替代驱动以及数字化和自动驾驶变得愈发重要,需要更为强大且智能的车辆。与此同时,E/E系统的复杂性也在不断增加,这对车载通信提出了…

Vue - el-form的学习记录 - 记录问题解决方法

问题1: Elementui在重置表单时,无法使用this.$refs[‘formRefVal‘].resetFields()清空表单数据; 必须为每一个 el-form-item 配置一个指定的 prop 参数,this.$refs[‘formRefVal‘].resetFields() 它会跟进初始值,还…

深入分析:香港 windows 和linux VPS 区别和使用需求

​  香港虚拟专用服务器 (VPS) 两种常见的操作类型是 Windows 和 Linux VPS。尽管两者都提供相似的好处,但两者之间的显著差异会影响哪一个更适合用户的特定需求。 在本文中,我们将探讨这两种解决方案之间的主要区别,包括它们的操作系统和软…

IM即时通讯系统[SpringBoot+Netty]——梳理(四)

文章目录 九、消息业务的核心之消息可达性、一致性、幂等性、实时性1、消息实时性—利用多线程解决消息串行的问题,提高处理效率2、消息实时性—校验逻辑前置由tcp通过feign接口提前校验3、消息实时性—利用mq异步持久化消息4、用了TCP就不会丢包、丢消息了吗&#…

【黄啊码】如何使用thinkphp结合wokerman实现分组群聊

大家好,我是黄啊码,关于php的课程咱们好像停更了一小段时间了,今天继续,讲讲怎么使用wokerman实现分组群聊,不知道怎么用tp搭建wokerman的,请看下边链接,我不会再做阐述:【黄啊码】w…

半监督医学图像分割的平滑性和类分离研究

文章目录 Exploring Smoothness and Class-Separation for Semi-supervised Medical Image Segmentation摘要本文方法Pixel-level SmoothnessInter-class Separation 实验结果 Exploring Smoothness and Class-Separation for Semi-supervised Medical Image Segmentation 摘要…

win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行

运行Vicuna-7B需要RAM>30GB或者14GB的显存 运行Vicuna-13B需要RAM>60GB或者28GB的显存 如果没有上面的硬件配置请绕行了,我笔记本有64G内存,两个都跑跑看,使用python3.9,当时转换13b时一直崩溃后来发现是没有设定虚拟内存&…

火爆B站的阿玮老师,他带着课程走来了(含4天入门到精通Java直播课)

他来啦、他来啦 终于把百万B站用户都爱的阿玮老师盼来啦! 此处应该有掌声 如果你是B站资深用户 相信早就耳闻阿玮老师的大名啦 阿玮老师在B站有多受欢迎,你往下康康~~ 这究竟是什么神仙老师呀 来啦就出不去啦 听了阿玮老师的课 才发现 原来学习…