sed 指定行范围匹配

Shell脚本文本三剑客之Sed 一、Sed编辑器 1.1Sed概述 sed编辑器时一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要存储在一个命令文本文件中。 1.2Sed工作流程 sed 的工作流程主要包括读取、执行和显示三个过程: 读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。 执行:默认情况下,所有的sed 命令都在模式空 阅读详情
sed -n '5,10{/pattern/p}' file

sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、 删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节 省了时间。sed必须通过行号和正则表达式指定要改变的文本行

sed怎样读取数据:
sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,并使用这些命令查找模式或定位 行号编辑它,重复过程直到命令结束

sed命令的调用:
在命令行键入命令;将sed命令插入脚本文件,然后调用sed;将sed命令插入脚本文件,并使sed脚本可执行
sed [option] sed命令 输入文件            在命令行使用sed命令,实际命令要加单引号
sed [option] -f sed脚本文件 输入文件     使用sed脚本文件
sed脚本文件 [option] 输入文件            第一行具有sed命令解释器的sed脚本文件
option如下:
n 不打印; sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑),p命令可以用来打印编辑行
c 下一命令是编辑命令,使用多项编辑时加入此选项
f 如果正在调用sed脚本文件,使用此选项,此选项通知sed一个脚本文件支持所用的sed命令,如
sed -f myscript.sed input_file  这里myscript.sed即为支持sed命令的文件
使用重定向文件即可保存sed的输出

使用sed在文本中定位文本的方式:
x       x为一行号,比如1
x,y     表示行号范围从x到y,如2,5表示从第2行到第5行
/pattern/    查询包含模式的行,如/disk/或/[a-z]/
/pattern/pattern/   查询包含两个模式的行,如/disk/disks/
/pattern/,x  在给定行号上查询包含模式的行,如/disk/,3
x,/pattern/  通过行号和模式查询匹配行,如 3,/disk/
x,y!    查询不包含指定行号x和y的行

基本sed编辑命令:
p      打印匹配行                      c\    用新文本替换定位文本
=      显示文件行号                    s     使用替换模式替换相应模式
a\     在定位行号后附加新文本信息        r     从另一个文本中读文本
i\     在定位行号后插入新文本信息        w     写文本到一个文件
d      删除定位行                      q     第一个模式匹配完成后退出或立即退出
l      显示与八进制ASCII代码等价的控制字符        y  传送字符
n      从另一个文本中读文本下一行,并附加在下一行   {}     在定位行执行的命令组
g      将模式2粘贴到/pattern n/

基本sed编程举例:
使用p(rint)显示行: sed -n '2p' temp.txt   只显示第2行,使用选项n
打印范围:  sed -n '1,3p' temp.txt         打印第1行到第3行
打印模式:  sed -n '/movie/'p temp.txt     打印含movie的行
使 用模式和行号查询:  sed -n '3,/movie/'p temp.txt   只在第3行查找movie并打印
显示整个文件:  sed -n '1,$'p temp.txt      $为最后一行
任意字符:  sed -n '/.*ing/'p temp.txt     注意是.*ing,而不是*ing
打印行号:  sed -e '/music/=' temp.txt
附加文本:(创建sed脚本文件)chmod u+x script.sed,运行时./script.sed temp.txt
#!/bin/sed -f
/name1/ a\             #a\表示此处换行添加文本
        HERE ADD NEW LINE.     #添加的文本内容
插入文本:
/name1/ a\ 改成 4 i\ 4表示行号,i插入
修改文本: /name1/ a\ 改 成 /name1/ c\ 将修改整行,c修改
删除文本: sed '1d' temp.txt  或者 sed '1,4d' temp.txt
替 换文本: sed 's/source/OKSTR/' temp.txt     将source替换成OKSTR
sed 's/\$//g' temp.txt             将文本中所有的$符号全部删除
sed
's/source/OKSTR/w temp2.txt' temp.txt 将替换后的记录写入文件temp2.txt
替换修改字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
结果将在source字符串前面加上"ADD BEFORE",这里的&表示找到的source字符并保存
sed结果写入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
从文件中读文本: sed '/name/r temp2.txt' temp.txt
在每列最后加文本: sed 's/[0-9]*/& Pass/g' temp.txt
从 shell向sed传值: echo $NAME | sed "s/go/$REP/g"   注意需要使用双引号

快速一行命令:
's/\.$//g'         删除以句点结尾行
'-e /abcd/d'       删除包含abcd的行
's/[][][]*/[]/g'   删除一个以上空格,用一个空格代替
's/^[][]*//g'      删除行首空格
's/\.[][]*/[]/g'   删除句号后跟两个或更多的空格,用一个空格代替
'/^$/d'            删除空行
's/^.//g'          删除第一个字符,区别  's/\.//g'删除所有的句点
's/COL/(...\)//g'  删除紧跟COL的后三个字母
's/^\///g'         删除路径中第一个\

 

sed '1{:a;N;6!ba};N;${P;Q};D'
awk '{a[NR%7]=$0}END{print a[(NR-6)%7]}'

从性能上来讲,倒数几行的问题,还是用tail的好
tail -7 | head -1

通过sed截取一行匹配内容 sed匹配成功后,打印所在行的内容是比较简单。但是要输出某行匹配内容,而不是整行内容。 立即下载

相关推荐

芯片详解——AD7606

AD7606详解

weixin_45661757的博客 5021

Sed 匹配内容与提取想要的内容

例子: STR="I'm from china(GRUANDDON)." echo $STR|sed -ne "s/^I.*\((.*)\)./\1/gp" 结果: (GRUANDDON) 关键点: \( \) 中间配置的内容可以使用\1 \2 ... 作为引用 总结: \( \) 包含的内容是提取匹配的内容,使用\1 \2 ... 引用多个匹配内容。 ...

lostar01的专栏 3161

Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程

本文详细介绍了如何在Ubuntu22.04(Jammy)系统下配置ROS2环境,安装RO2软件包,并验证安装成功。ROS2的版本是Humble Hawksbill。:ROS是一个开源的,提供硬件抽象、设备驱动、库、工具和通信机制,支持模块化开发与集成,广泛用于机器人控制和自动化应用。ROS2 相较于 ROS1 在架构设计、通信机制和平台支持等方面做出了改进。ROS1 采用集中式主节点(Master)进行节点间通信,存在单点故障风险,且实时性和跨平台支持较弱。

weixin_49649078的博客 8808

sed指定行范围匹配(转贴!)

sed -n '5,10{/pattern/p}' file sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、 删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节 省了时间。sed必须通过

cyfu017的专栏 2万+

复现基于PYNQ-Z2的手写数字识别卷积加速器设计

来源雪天鱼。

eachanm的博客 968

HFSS仿真中如何提取最大E/H场强与频率关系曲线

本文详细讲解了在HFSS仿真中提取最大E/H场强与频率关系曲线的完整流程。通过使用场计算器(Field Calculator)和创建场报告,工程师可以准确获得器件在整个频带内的电场或磁场强度峰值,并进一步推导出关键的功率容量曲线,为高功率射频器件(如滤波器、耦合器)的设计提供至关重要的安全评估依据。

ss78901的博客 1098

sed 指定行范围匹配(转)

sed -n '5,10{/pattern/p}' filesed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、 删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节 省了时间。sed必须通过行...

didian6280的博客 513

基于YOLOv11的工业零件表面缺陷检测系统:从原理到实现

工业质量控制是制造业的核心环节,表面缺陷检测作为其中重要组成部分,直接关系到产品质量和企业效益。本文详细介绍了一种基于YOLOv11深度学习算法的工业零件表面缺陷检测系统,包含完整的算法原理分析、数据集构建方法、模型训练策略以及用户界面设计。通过大量实验验证,该系统能够高效准确地检测零件表面的划痕、凹陷、锈蚀等多种缺陷,检测精度达到96.2%,满足工业实时检测需求。本文还提供了完整的代码实现和详细的技术文档,为相关领域的研究者和工程师提供参考。关键词:表面缺陷检测;YOLOv11;深度学习;工业视觉;

YOLO 567

实验楼--第十三章_sed额外总结

实验楼有关sed讲的真的好少,后面又去补了一下它推荐的教程 sed简明教程 什么是 首先就是sed的一般格式: sed [参数,option] [执行命令] [target] 比方说,举一个很常用也很容易看懂的例子: sed "s/my/your's/g" pets.txt "s/my/your's/g"就是执行命令,pets.txt就是目标文件target. ...

weixin_43301333的博客 201

SAP 系统间信任关系配置全攻略:从 SM59 到 SMT1 的实践与风险控制

本文介绍了在SAP系统间配置信任关系的详细流程与最佳实践。文章以SAP Gateway与后端系统架构为场景,从SM59创建RFC目的地开始,到SMT1建立信任关系,再到授权对象S_RFCACL的配置,提供了完整的操作指南。重点包括:使用标准命名规范创建专用RFC连接、通过向导完成系统间信任登记、严格控制S_RFCACL授权范围等。文中还分享了真实项目案例、可复用的检查清单以及常见问题的排查思路,帮助用户实现稳定可靠的跨系统无密码调用,同时确保安全性。

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

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

sed编辑文件

在sed命令里,3,$s/.$//是一段用于文本处理的规则,下面这就拆分成几个部分,给你详细讲讲每个符号的含义:3,$3代表第 3 行在sed里是一个特殊符号,专门用来表示最后一行。把它们用连起来3,$,整体的意思就是“从第 3 行开始,一直到文件的最后一行”。也就是说,下面的替换操作(s/.$//)会作用在这个范围内的每一行文本上。s/原内容/新内容/这是sed里最常用的替换操作格式s就是 “substitute(替换)” 的意思,整个结构就是告诉sed。

2401_84538914的博客 854

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

sed截取时间段内的日志

sed、grep截取日志

weixin_45112997的博客 4981

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

sed及awk显示指定行内容

文件内容为 1 2 3 4 5 6 7 8 9 10 11 [root@test1test]#catfile.test 1 2 3 4 5 6 7 8 9 10 1. 显示第二行内容(指定行) 1)sed 1 2 [root@test1test]#sed-n'2p'file.test 2 ...

weixin_34391854的博客 5455

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Sed命令

SED解析 例 如上图。要注意的就有点 1 sed 后面的处理必须要加 ' '括起来才行 2 2,5意思就是2-5行 3 d,从解析的第二张图可以得知,是删除的意思。所以整句话的意思就是 删除2-5行。所以结果如下图,2-5行就删除了。 新增同上,无非就是把d改成a,如图: 如果我只想打印2-5行,我该如何操作呢?一般情况下都会如下图所示 看到了么?这个命令...

weixin_30483013的博客 145

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

sed 应用

sed指定行范围匹配(sed打印1到10行包含某字符串的行)[root@adai003grep]#sed-n'1,10{/oo/p}'test.txtroot:x:0:0:root:/root:/bin/bash3233:x:4:7:lp:/var/spool/lpd:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/s...

weixin_34220834的博客 83

sed命令用法总结

sed命令: ------------------------------------ sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录` 例如:我要把 charset=gb2312 替...

cqoz65349的博客 297

文本处理工具学习-sed系列之二

sed的常用选项以及命令大致就是这些了,以后用到其它选项和相关的命令我会续上,敬请期待!接下来我就这些常用选项和命令举一些例子,注意:这些例子仅供参考,如有雷同纯属巧合,哈哈。(1)p 代表打印匹配行[root@test2 tmp]# cat test1.txt13856...

weixin_34148508的博客 99

shell入门-sed-1

sed这个工具比grep复杂一点,功能比grep复杂一点 功能也能指定匹配的行,不能颜色显示 sed 基础功能 [root@wangshaojun ~]# sed -n '10'p 1.txtuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin 不加-n 第十行出现两遍 p打印的意思 可以指定范围 1到10行 [root@...

weixin_30500473的博客 104
上一篇: 《红孩儿引擎内功心法修练与Cocos2d-x》之结点系统(场景,层,精灵)
下一篇: android实现背景音乐播放
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值