【文本三剑客】SED

news2025/1/21 15:39:38

SED

  • 一、sed编辑器
    • 1.2sed简介
    • 1.3sed工作流程
    • 1.4sed命令格式
    • 1.5常用选项
    • 1.6常用操作
  • 二、sed实验
    • 2.1打印内容
    • 2.2删除行
    • 2.3替换
    • 2.4插入

一、sed编辑器

1.2sed简介

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

1.3sed工作流程

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

1.4sed命令格式

sed -d '操作符' 文件1 文件2
sed -n -e '操作符' 文件1 文件2
sed -f 脚本文件 文件1 文件2
sed -i -e '操作符' 文件1 文件2
sed -e 'n {
操作1
操作2
...
}' 文件1 文件2 ...

1.5常用选项

选项功能
-e表示用指定目录来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用
-f表示用指定的脚本文件来处理输入的文本文件
-h显示帮助
-n禁止sed编辑器输入,但是可以与p命令一起使用完输出
-i直接修改目标文本文件

1.6常用操作

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

二、sed实验

2.1打印内容

格式

sed -n -e 'p' 【文件】#打印匹配的文件内容
sed -n -e '=' 【文件】#打印行号
sed -n -e 'l' 【文件】#打印数据流中的文本何不可打印的ASCLL字符
sed -n -e '=;p'【文件】#打印文件内容和行号
sed -n -e '=' -e 'p' 【文件】#功能同上
sed -n '
=
p
' 【文件】 功能同上

在这里插入图片描述

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

2.2删除行

格式

sed 'd' 【文件】#删除文件
sed '3d' 【文件】#删除第三行
sed '2,4d' 【文件】#删除2到4行
sed '$d' 【文件】#删除最后一行
sed '/^$/d' 【文件】#删除空行
sed '/1/!d' 【文件】#除了含有1的行,其它都删除
sed '/2/,/3/d' 【文件】#从含有2的行开始删除,到含有3的行结束,以此循环

在这里插入图片描述

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

2.3替换

格式

  • 行范围 s/旧字符串/新字符串/替换标记

替换标记

标记功能
数字表明新字符串将替换第几处匹配的地方
g表明新字符串将会替换所有匹配的地方
p打印与替换命令匹配的行,与-n一起使用
w 【文件】将替换的结果写道文件中去

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

2.4插入

操作符功能
H表示复制到剪切板
G表示粘贴掉指定行后面

格式

sed '/45/cAB' 1.txt #将45替换成AB
sed 'y/45/AB/' 1.txt#将4所有的4替换成A,5替换成B
sed '1,3a AB' 1.txt#在1到3行的下面增加ABC
sed '1,3i AB' 1.txt#在1到3行的上面增加ABC
sed '$r 123.txt' 1.txt #在1.txt文件末尾读取123.txt文件
sed '/root/{H;d};$G' /etc/passwd #将包含root的行粘贴到最后一行

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

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

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

相关文章

链表详解 - C语言描述

目录 认识链表 链表的分类 链表的实现 单链表的增删查改 增操作 删操作 查操作 改操作 带头双向循环链表 认识链表 链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构。链表由一系列节点(结点)组…

最火爆ChatGPT知识星球分享,开启与GPT的神奇之旅

今天给大家介绍的是一个讲解ChatGPt的知识星球,这个星球是专门为ChatGPT爱好者和AI绘画感兴趣的朋友们打造的。这个知识星球主题是关于ChatGPT的,旨在提供一个交流、学习和探索GPT的平台。 这里有一个强大的阵容,汇集了许多对人工智能和自然…

.Net平台下OpenGL绘制图形(2)(VS2019,Winform,C#)

本节主要讲诉图形绘制的原理,使用介绍和代码演示。 原理介绍 我们先来讲讲OpenGL的图形绘制。其实,所有的图形都是由许多个小图形连接而成的。你可以理解为是图片的像素,一张彩图是由很多个色彩不一的像素点组合而成。要实现色彩绚丽的图形设…

安装旧版本chrome 浏览器方法

1、下载 国内推荐下载网址:https://www.slimjet.com/chrome/google-chrome-old-version.php 我自己目前再用的103.0.5060.53版本,也可以到我网盘下载[若失效可联系我更新]。 2、安装之前,请先卸载干净当前版本 打开控制面板,找打…

挣值管理专题

挣值管理 基本思路 该方法的基本思想是应用统计学的原理,通过引进一个中间变量即“挣值”来帮助项目管理者分析项目成本的变动情况,并给出项目成本与工期相关变化的信息及对项目成本发展趋势作出预测与决策。 挣值的定义 挣值是一个表示项目“已完成作业…

Linux多路复用机制原理分析--select/poll

前言 Linux访问设备的IO模型主要有五种,分别是非阻塞IO模型、阻塞IO模型、IO多路复用模型、信号驱动模型以及异步IO模型。本文主要分析IO多路复用模型,Linux下的IO多路复用模型主要有select/poll/epoll等机制实现。 IO多路复用模型可以实现以非阻塞的方…

Dijkstra算法图解,C++实现Dijkstra算法

目录 Dijkstra算法简介数据结构抽象初始化开始计算第一轮计算第二轮计算第三轮计算第四轮计算算法总结 C实现Dijkstra算法 Dijkstra算法简介 Dijkstra算法计算是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起…

1929-2022年全球气象站点的逐日平均能见度

气象数据是我们在各项研究中都非常常用的数据,之前我们分享过全球范围的1929-2022年的具体到气象站点的逐日气象数据,包括平均气温、最高气温、最低气温、平均风速(可查看之前的文章获取)。 本次我们带来的是全球范围的1929-2022…

单链表的成环问题

前言:链表成环问题不仅考察双指针的用法,该问题还需要一定的数学推理和分析能力,看似简单的题目实则细思缜密,值得斟酌~ 目录 1.问题背景引入-判断链表是否成环: 1.1.正解:快慢指针 1.2 STL的集合判重 …

kubespray部署k8s 1.26集群安装指南

Kubespray 是一个自由开源的工具,它提供了 Ansible 剧本(playbook) 来部署和管理 Kubernetes 集群。它旨在简化跨多个节点的 Kubernetes 集群的安装过程,允许用户快速轻松地部署和管理生产就绪的 Kubernetes 集群。 它支持一系列操作系统,包…

Spring的第十五阶段:Spring的事务管理(02)

1、自定义设置回滚异常 rollbackFor和rollbackForClassName回滚的异常 /*** Transactional 表示使用通知( 启用事务 ) <br/>* rollbackFor 属性可以自定义哪些异常可以回滚事务 <br/>* rollbackForClassName 属性可以自定义哪些全类名的异常回滚事务 <br/>…

Java实现八大排序

&#x1f495;“汲取知识&#xff0c;分享快乐&#xff0c;让生命不留遗憾”&#x1f495; &#x1f386;作者&#xff1a;不能再留遗憾了&#x1f386; &#x1f43c;专栏&#xff1a;Java学习&#x1f43c; &#x1f3c0;该文章主要内容&#xff1a;直接插入排序、希尔排序、…

VMware安装Ubuntu系统

VMware安装Ubuntu系统 1.首先选择文件&#xff0c;点击新建虚拟机 2.选择自定义&#xff0c;点击下一步 3.点击下一步 4.选择稍后安装操作系统&#xff0c;点击下一步 5.选择Linus操作系统&#xff0c;版本选择Ubuntu64位&#xff0c;点击下一位 6.自己看图 7. 这里根据自…

「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结 Rebase

Git commit 规范 关于提交信息的格式&#xff0c;可以遵循以下的规则&#xff1a; feat: 新特性&#xff0c;添加功能fix: 修改 bugrefactor: 代码重构docs: 文档修改style: 代码格式修改test: 测试用例修改chore: 其他修改, 比如构建流程, 依赖管理 Git 基础知识 当我们通过…

ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数

ThinkPHP6&#xff0c;视图的安装及模板渲染和变量赋值 tp6视图功能由\think\View类配合视图驱动&#xff08;也即模板引擎驱动&#xff09;类一起完成&#xff0c;新版仅内置了PHP原生模板引擎&#xff08;主要用于内置的异常页面输出&#xff09;&#xff0c;如果需要使用其…

mysql数据库的数据类型 -- 4

目录 数据类型 4.1&#xff1a;数据类型的分类 4.2&#xff1a;数值类型 4.3&#xff1a;字符类型 4.5&#xff1a;enum和set类型 数据类型 4.1&#xff1a;数据类型的分类 数值类型 描述 TINYINT [UNSIGNED]整数&#xff0c;占用1字节SMALLINT [UNSIGNED] 整数&#xf…

springboot+vue滴答拍摄影项目(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的滴答拍摄影项目。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌…

JAVA程序员不得不知道的String类

文章目录 目录 文章目录 前言 String类的重要性: 一.String类简介 二.String底层源码剖析 三.字符串构造 三.字符串的比较 四.String类常用方法 1.字符串查找 2.字符串转化 2.1 大小写转换 2.2 数组转字符串 2.3数值和字符串转化 2.4 格式化 ​编辑 3 字符串替换 ​…

【19】SCI易中期刊推荐——计算机 | 人工智能领域(中科院2区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

实验四 Spark Streaming

实验四 Spark Streaming 1.实验目的 1. 熟悉编写 Spark Streaming 程序处理流数据的方法。 2.实验内容 1. 实时统计贷款金额 模拟解决贷款金额的实时统计问题。假设某外企客户贷款金额数据如下&#xff08;json 格式&#xff09;&#xff0c; 第一项是客户名称&#xff08;…