文本三剑客之 sed 编辑器

news2024/9/23 21:26:50

一.sed 概述

1.sed 介绍

sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。

sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个

命令文本文件中。

2.sed 的工作流程

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

执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。

3.常用的选项

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

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

-h    或--help:显示帮助。

-n    --quiet 或 silent:禁止sed编辑器输出,但可以与p命令一起使用完成输出。
                                              p 打印功能

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

4.命令格式

sed -e '操作命令' 目标文件 ....      #在命令行指定操作命令处理文件行数据

sed -e '操作' 文件1 文件2    ...

sed -n -e '操作' 文件1 文件2 ...

sed -f 脚本文件 文件1 文件2  ...

sed -i -e '操作' 文件1 文件2 ...

sed -e 'n{
操作1
操作2
...
}' 文件1 文件2 ...

二.sed 的常用操作

s:替换,替换指定字符。

d:删除,删除选定的行。

a:增加,在当前行下面增加一行指定内容。

i:插入,在选定行上面插入一行指定内容。

c:替换,将选定行替换为指定内容。

y:字符转换,转换前后的字符长度必须相同。

p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;
如果有非打印字符,则以 ASCII 码输出。其通常与“-n”选项一起使用。

=:打印行号。

l(小写L):打印数据流中的文本和不可打印的ASCII字符(比如结束符$、制表符\t)

1.打印内容功能

(1)sed  的 p 选项

打印内容   p(打印行内容)  =(打印行号)   l(打印ASCII字符)

(2)打印指定的地址

sed编辑器有2种寻址方式:
【1】以数字形式表示行区间
【2】用文本模式来过滤出行

sed -n -e 'n;p' test1.txt  的演示过程

第一次过程  读取  第一行   执行  先n  跳到到下一行  (第二行)   再p  打印第二行内容

第二次过程  读取  第三行   执行  先n  跳到到下一行  (第四行)   再p  打印第四行内容

第三次过程  读取  第五行   执行  先n  跳到到下一行  (第六行)   再p  打印第六行内容

sed -n -e '2,${n;p}' test1.txt
第一次过程   读取  第二行    执行 先n   跳到下一行 (第三行)     再p 打印第三行内容 
第二次过程   读取  第四行    执行 先n   跳到下一行 (第五行)     再p 打印第五行内容 
第三次过程   读取  第六行    执行 先n   跳到下一行 (第七行)     再p 打印第七行内容 

 sed 默认只支持默认正则表达式使用,想要使用扩展表达式需要加上 - r  选项

联合使用

2. 删除功能

sed 的 的选项

 拓展:在一个脚本文件里定义操作命令

sed -f 脚本文件  目标文件 ....                    

使用指定脚本文件里的操作命令处理文件行数据

提前在文件里定义一个操作可以指定文件加上 - f 选项进行操作处理;也可以进行多行操作。

vim a.sh

p;n

 vim a.txt

=

p;n

 拓展2:sed -i

3.替换功能

替换    s(字符串替换)    c(整行内容替换)     y(对应字符替换)

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

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

如果想要删除root字符

如果想要删除 /etc/yum.conf 文件里的第15行到第26行删除注释

如果想要/etc/yum.conf 文件里第1行到第12行加上注释

如果想要只注释 /etc/fstab 文件里的 swap

如果想要给编辑的文件新保存;可以使用重定向输出的方式,也可以通过sed 命令 w 操作来保存,不过只会保存修改的内容

 sed  's/.*swap.*/#&/w /opt/fstab2' /etc/fstab

拓展:/ 可以被替换

sed -e 's/\bin\/bash/\/sbin\/nologin/g' /etc/passwd

sed -e 's#bin/bash#/sbin/nologin#g' /etc/passwd
 
     两者效果一样, /  可以替换成任意符号都可以做到替代\的作用
sed 's9\945\9\99\98\939g' test.txt   的含义

          将\954\9\9 替换成 \98\93

替换的高级功能

sed -e '行号c 新行内容'
sed -e '/字符串/c 新行内容'

sed -e 'y/旧字符/新字符/' 

4.插入功能

a(在指定行下面插入行内容)

i(在指定行上面插入行内容)

r(在指定行下面插入整个文件内容)

sed -e '行号区间a 行内容'
sed -r -e '/字符串或正则/a 行内容'

sed -e '行号区间i 行内容'
sed -r -e '/字符串或正则/i 行内容'

sed -e '行号区间r 文件'

读入文件内容

5.复制粘贴功能

 H(复制指定行到剪切板)    G(将剪切板内容粘贴到指定行下面)

sed -e '1,3H;$G'           #将1-3行内容复制粘贴到最后一行下面

sed -e '1,3{H;d};$G'       #将1-3行内容剪切粘贴到最后一行下面

 拓展:将echo 11122233 替换成 321321321;将每个字符用()括起来重新用 \ 分配位置即可

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

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

相关文章

基于51单片机的电压表设计—0~5V

基于51单片机的电压表设计 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.ADC0832模数转换芯片实现电压的测量; 2.测量电压精确到0.01V; 3.测量范围默认是0~5v;…

汽车合面合壳密封UV胶固化后能持续多久密封呢?汽车车灯的灯罩如果破损破裂破洞了要怎么修复?

汽车合面合壳密封UV胶固化后能持续多久密封呢? UV胶在汽车合面合壳密封后的持久性取决于多种因素,包括UV胶的配方、环境条件、应力和使用情况等。一般而言,UV胶固化后的密封性能可以持续数年,我们可以从以下几个方面进行归纳&…

长难句打卡5.27

In fact, allowing non-lawyers to own shares in law firms would reduce costs and improve services to customers, by encouraging law firms to use technology and to employ professional managers to focus on improving firms’efficiency. 事实上,这通过…

AI日报|阿里8亿美元购入月之暗面36%股份,Meta首席杨立昆建议不要研究大模型...

文章推荐 阿里通义降价,百度文心免费,一图对比谁是最具性价比大模型? 阿里投资Kimi AI开发商月之暗面:8亿美元购入约36%股权 阿里巴巴在2024财年向AI初创企业月之暗面投资约8亿美元,购入其约36%股权。 月之暗面成立…

山东籍当代文化名人颜廷利起名大师的故事背景和历史背景

山东籍当代文化名人颜廷利起名大师的故事背景和历史背景 在当代中国文化界,全国排名第一是起名大师颜廷利教授的名字犹如一座学术高峰,其影响力横跨海内外。身为一位深受全球华人尊崇的学者,他的思想与教诲在国际间播撒着智慧的种子&#xff…

苹果WWDC 2024或将推出AI生成的表情符号并宣布与OpenAI的合作|TodayAI

苹果正在为即将到来的WWDC(全球开发者大会)做准备,并将展示其生成式AI技术。根据Mark Gurman在Bloomberg的《Power On》通讯中的报道,苹果将在2024年的WWDC上讲述自己的AI故事,但这可能不会像Google、Microsoft或OpenA…

全球前五!ATFX 2024年Q1业绩狂飙,6240亿美元交易量彰显实力

5月,密集发布的报告显示,强者恒强是差价合约行业不变的竞争逻辑。而ATFX最新展现的业绩无疑是这一逻辑的有力例证。依照惯例,知名行业媒体Finance Magnates日前公布了全球经纪商最为关注的2024年第一季度行业报告。报告数据显示,A…

智慧校园建设规划方案

在信息化浪潮的推动下,智慧校园的建设已成为教育现代化的必然趋势。以创新科技赋能教育,打造智慧校园,旨在提升教学品质,优化管理流程,增强学生体验。构建智慧校园需要具有前瞻性的规划方案,它将以教育为核…

LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]

LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架] 训练后的模型会用于推理或者部署。推理即使用模型用输入获得输出的过程,部署是将模型发布到恒定…

用友电子凭证解决方案,加速企业电子凭证全链路管理

2023年,财政部等9部委联合推进电子凭证数据标准及试点工作,目前逐步扩大试点范围,覆盖市场应用高频的9类凭证。2024年,财政部办公厅发布了《关于继续开展电子凭证会计数据标准深化试点工作的通知》对电子凭证进行全流程常态化处理…

google浏览器下载和相应驱动下载

1、chromedriver 115及115之后版本下载地址: https://googlechromelabs.github.io/chrome-for-testing/ 2、chromedriver 115之前版本下载地址(已停止更新115及之后版本): http://chromedriver.storage.googleapis.com/index.html…

前端开发工程师——数据可视化

canvas canvas绘制线段 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

数据结构(五)队列

文章目录 一、概念二、逻辑结构&#xff1a;线性结构三、存储结构&#xff08;一&#xff09;顺序队列&#xff08;二&#xff09;循环队列1. 结构体定义2. 创建队列&#xff08;1&#xff09;函数定义&#xff08;2&#xff09;注意点&#xff08;3&#xff09;代码实现 3. 入…

抖音小店三种快速出体验分的方式,看看你想要去做哪一种?

大家好&#xff0c;我是电商小V 很多小伙伴开的新店都是没有体验分的&#xff0c;大家都知道起店的第一步就是先要出分&#xff0c;后期的话自己店铺的体验分越高&#xff0c;那么店铺的权重就越大&#xff0c;你的商品就会进入自然流量池&#xff0c;那么系统给你推荐的流量就…

echarts图表英文状态下图标的横向坐标轴显示中文

解决方法&#xff1a; 初始化图表时传入ZH(中文&#xff09;EN(英文)const locale ENinitChart() {this.chart echarts.init(this.$refs.chart, null, {locale: locale ,});this.setOptions();},

如何解决图纸加密的痛点

在当今信息高度发达的时代&#xff0c;图纸作为工程设计、制造、施工等领域的重要载体&#xff0c;其安全性显得尤为关键。然而&#xff0c;图纸加密却常常面临着诸多痛点&#xff0c;这些痛点不仅影响了企业的数据安全&#xff0c;也制约了行业的健康发展。 图纸加密的复杂性是…

深度解析:从概念到变革——Transformer大模型的前世今生以及大模型预备知识讲解[知存科技]

深度解析&#xff1a;从概念到变革——Transformer大模型的前世今生 点击&#xff1a;知存科技相关课程推荐 知存科技是全球领先的存内计算芯片企业。针对AI应用场景&#xff0c;在全球率先商业化量产基于存内计算技术的神经网络芯片。凭借颠覆性的技术创新&#xff0c;知存科…

微信公众号怎么做留言板功能

在繁忙的都市生活中&#xff0c;你是否常常感到孤单、渴望有一个可以倾诉心声的地方&#xff1f;今天&#xff0c;我要为大家介绍一个特别的角落——我们公众号的留言板功能。它不仅是一个留言板&#xff0c;更是一个情感交流的平台&#xff0c;一个可以让我们彼此心灵相通的桥…

论文阅读--GroupViT

视觉之前做无监督分割的时候&#xff0c;经常使用grouping方法&#xff1a;如果有一些聚类的中心点&#xff0c;从这写点开始发散&#xff0c;把周围相似的点逐渐扩充成一个group&#xff0c;这个group就相当是一个segmentation mask 右边是grouping block&#xff0c;左边的两…

【外汇天眼】市场如战场:交易中的攻防艺术

交易的成功如同生活&#xff0c;急功近利反而有害无益。在交易中&#xff0c;许多投资者常常面临亏损&#xff0c;急于挽回损失&#xff0c;频繁操作&#xff0c;结果却往往是越亏越多。交易需要耐心&#xff0c;不能急于一时&#xff0c;更不能与市场赌气。交易和生活一样&…