sed的使用详解

macos下的 sed命令安装与使用 gnu-sed sed命令是我们在linu类系统中非常重要的一个命令, 但是在macos下面默认是没有sed命令的, 不过我们可以通过( 或者通过)这个软件包来获得这个命令。 阅读详情

一.sed编辑器

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

1.sed编辑器工作流程

sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 sed的工作流程主要包括读取、执行和显示三个过程:
1.读取: sed从输入流 (文件、管道、标准输入) 中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)
2.执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed命令将会在所有的行上依次执行。
3.显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。

2.命令格式
 sed -e '操作' 文件1 文件2……
 sed -n -e '操作' 文件1 文件2 ……
 sed -f 脚本文件 文件1 文件2 ……
 sed -i -e '操作' 文件1 文件2 ……

 sed -e 'n{
 操作1
 操作2
 ……

3.常用选项

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

4.常用操作

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

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

也可以使用;分隔
sed -n -e '=;p'  sed1
或
sed -n '
> =
> p
> ' sed1

5.使用地址

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

sed -n '1p' sed1        #打印第一行
sed -n '$p' sed1        #打印最后一行
sed -n '1,3p sed1       #打印1-3行
sed -n '3,$p' sed1      #打印三到最后一行
sed -n '1, +3p' sed1   #打印1之后的连续3行,即1-4行
sed '5q' sed1           #打印前3行信息后退出,q表示退出
sed -n 'p;n' sed1       #打印奇数行; n表示移动到下一行
sed -n 'n;p' sed1       #打印偶数行
sed -n '2,${n;p}' sed1       #从第二行开始,n移动下一行,p打印,表示打印奇数行
sed -n ' /user/p' /etc/passwd    #//搜索包含user的行进行打印,区分大小写

在这里插入图片描述

sed -n ' /^a/p' /etc/passwd     #搜索以a开头的行进行打印

在这里插入图片描述

sed -n '/nologin$/p' /etc/passwd       #打印以nologin结尾的行
sed -n '5,/nobody/p' /etc/passwd     #从第5行开始打印到包含nobody的行

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

6.删除行

sed 'd' sed1  #全删
sed '3d' sed1  #删除第三行
sed '2,4d' sed1  #删除2-4行
sed '$d' sed1  #删除最后一行
sed '/^$/d' sed1  #删除空行
sed '/bash$/d' /etc/passwd  #删除以bash为结尾的行
sed '/home/d' /etc/passwd  #删除包含home的行
sed '/bash/!d' /etc/passwd  #!表示取反,删除除了包含bash以外的行
sed '/2/,/4/d' 文件名  #从第一个位置打开行删除功能,到第二个位置关闭行删除功能,但在同一文件里不是只执行一次,只到最后无法匹配到才可以结束

7.替换

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

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

在这里插入图片描述

sed '5r 文件名1' 文件名2  #在文件2的第五行下面读入文件1的内容


复制剪切:

sec '/root/{H;d}$G' /etc/passwd  #将包含root的行剪切到末尾,H表示复制到剪切板,d表示删除原内容,G表示粘贴到指定行后
sed '1,2H;3,4G' /etc/passwd  #将1,2行内容分别复制到3和4行下面


sed命令常见用法 运用sed命令高效地删除文件的特定行 1. 删除某一行 首先,我们先从删除某一行开始,比如删除第一行、最后一行,实际也就是第 N 行嘛。 删除第 N 行的命令格式: sed 'Nd' file 删除最后一行 # sed '$d' sed-demo.txt 2. 删除某些行 sed 命令可以删除连续又或者不连续的行内容。 删除连续的行,例如删除从 5 到 7 行 的内容: # sed '5,7d' sed-demo.txt 删除不连续的行,例如删除第 1 、第 5 、第 9 和最后一行: # sed ' 阅读详情

相关推荐

用Cadence IC618仿真双平衡吉尔伯特混频器:从原理图到后仿的完整避坑指南

本文详细介绍了在Cadence IC618环境中设计双平衡吉尔伯特混频器的全流程,包括原理图设计、仿真优化和版图实现。通过实战案例分享,重点解析了设计中的关键技巧和常见问题解决方案,帮助工程师高效完成高性能混频器设计,特别适合射频前端开发人员参考。

weixin_42656416的博客 162

Linux三剑客-----sed

sed一、sed编辑器二、sed命令1.格式2.常用选项3.常用操作4.执行总结 一、sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 sed的工作流程主要包括读取、执行和显示三个过程 操作顺序 说明 读取 sed从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,patternspace) 执行

记忆的博客 546

FreeRTOS的学习(十四)——PendSV异常

本文将从任务切换的角度出发,学习PendSV异常的相关概念。

LEOD的博客 1729

sed命令详解

1.sed -n 2p filename 打印文件的第二行。 2.sed -n 1,3p filename 打印文件的1到3行 3. sed -n /Neave/p filename 打印匹配Neave的行(模糊匹配) 4. sed -n 4,/The/p filename 在第4行查询模式The 5. sed -n 1,$p filename 打印整个文件,$表示最后一行。 

1040

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3986

以太网硬件核心:MAC、PHY、MII与交换机原理与实战排查

计算机网络通信的基础依赖于一套完整的硬件协议栈。在OSI模型中,数据链路层和物理层是实现设备间可靠、高效数据传输的基石。其核心原理在于将上层数据包封装成帧,并通过特定的介质访问控制与物理信号转换机制进行传输。这一过程的技术价值在于为上层应用提供了透明、稳定的通信信道,是互联网和所有局域网通信的物理承载。在嵌入式系统、网络设备开发及运维等应用场景中,深入理解底层硬件交互至关重要。本文将聚焦于以太网硬件的两大核心组件:负责逻辑成帧与流量控制的MAC控制器,以及负责数模转换与链路协商的PHY芯片。它们通过MII、

dgqvhtlwq472235338的博客 422

文本处理三剑客之sed --超详细操作

sed 是一种流编辑器,读取一行,处理一行,输出一行.sed 先读取文件中的一行内容存储到被称为模式空间 (pattern space) 的临时缓冲区中,接着根据设定的条件来处理缓冲区中的内容,多个条件则多次处理,处理完成后输出到屏幕,接着读取和处理下一行,直到文件末尾。原文件内容并没有改变,除非使用重定向存储输出.sed 主要用来自动编辑一个或多个文件;简化对多个文件执行相同的编辑处理工作;编写转换程序.​。

weixin_64341393的博客 1338

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

况老师话竞赛&blog 2196

36 - shell之sed

sed是一种流编辑器,一次处理一行内容。如果只是展示,会放在缓冲区(模式空间),展示结束,会从模式空间把结果删除。一行一行处理,处理完当前行,才会处理下一行,直到文件末尾。

m0_74149099的博客 829

SAP Joule Studio 全景解析

摘要:SAP Joule Studio是SAP Build平台中的低代码/专业级复合工作台,用于构建和管理企业专属的Joule智能体与技能。它支持通过拖拽和声明式编排实现跨系统任务自动化,与SAP及第三方系统集成。核心构件包括Agent(智能体)、Skill(技能)、Action(动作)和Project(项目)。Joule Studio强调企业级落地,与SAP Build Process Automation等工具协同,实现从设计到运行的全生命周期管理。典型应用场景包括供应链补货、财务关账和人力服务台自动化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 391

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8295

Sed详解

1.Sed 简介 sed 是一种新型的,非交互式的编辑器。它能执行与编辑器 vi 和 ex 相同的编辑任务。sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。sed 编辑器没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。 1.1sed 工作过程 sed 编辑器逐行处理文件(或输入),并将输出结果发送到屏幕。sed 的命令就是在 vi和 ed/ex 编辑器中见到的那些。sed 把...

hidingin 2万+

从零开始创建Davinci Configurator配置工程

本文介绍了从零开始搭建达芬奇工程的详细步骤。首先安装Vector的CBD包后,通过DavicCFG.exe新建空白ECU工程。文章提到Postbuild相关概念可参考往期文章《AUTOSAR配置中的PostBuild、Precompile、Linktime》,并预告下期将讲解如何通过导入DBC文件来启用AUTOSAR模块。全文以实操截图为主,步骤清晰简明,适合开发者参考备份。

Xiaowestwind的博客 218

Sed 命令详解

Sed 命令详解 一、简介 sed是非交互式的流编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进

qq_21933797的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

sed 命令的使用

sed 命令的使用

2402_86758333的博客 2141

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

sed命令使用详解

  sed命令使用详解 文章来源:网通家园 文章作者:红箭 发布时间:2006-04-28   字体: [大 中 小]    

thimin的专栏 1664

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

sed 命令详解

sed是一个“作交互式的”面向字符流的编辑器。输入一般来自文件,但是也可以直接来自键盘。输出在默认情况下输出到终端屏幕上,但是也可以输出到文件中,sed通过解释脚本来工作,该脚本指定了将要执行的动作。sed还可以作为编辑过滤器使用。换句话说,你可以处理输入文件并将输出结果发送到另外一个程序。awk 程序的典型示例是将数据转换成格式化的报表。当数据拥有某种结构时就能最好地体现awk的好处。

qq_42226855的博客 4683

linux sed函数,Linux sed 命令详解

功能说明:利用script来处理文本文件。 sed可依照script的指令,来处理、编辑文本文件。简介:sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。两种形式:1、sed [options] '{c...

weixin_35998980的博客 1240

sed 命令使用

对SED的基本用法进行了介绍

foshansuperinter的博客 1276

sed使用详解

sed和awk使用详解sed使用详解sed功能说明语法格式选项说明1.1增加1.1.1 单行增加1.1.2 多行增加1.2删除1.3改1.3.1按行替换1.3.2按字符串替换1.3.3分组替换1.3.4启动项优化1.3.5特殊符号& 代表被替换的内容1.4查 sed使用详解 sed功能说明 sed的全称为stream editor,主要功能为增删改查,取行和过滤功能 语法格式 sed [o...

Lucky_TaoZi的博客 1243

Sed的使用

Sed是一种非交互式的流编辑器(Stream Editor),可动态编辑文件。所谓非交互式是说,sed和传统的文本编辑器(如Vi、Emacs)不同,并非和使用者直接交互,sed处理的对象是文件的数据流,sed从文本的一个文本行或者标准输入读取数据,将其复制到缓冲区,然后读取命令行或者脚本的第一个命令,对缓冲区中的数据进行操作,所以sed是不会改变源文件中的任何内容。sed的工作模式是对每一行数据,若符合指定的样式,就执行相应的操作。 二、使用场景 编辑相对交互式文本而言较大的文件; 编辑命令太复杂,在交互式

DR的专栏 1289

sed详解

Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍...

吴灵辉的博客 291

sed 使用说明

介绍sed工具的基础使用

heyongshen的博客 1268
上一篇: 10分钟教你学会正则表达式
下一篇: awk使用方法详解
糖果剑客
博客等级 码龄6年 97粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值