文本三剑客之——sed编辑器
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互换位置
文本三剑客之——sed编辑器相关推荐
- 文本三剑客:sed编辑器
sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流. sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本 ...
- sed 插入多行_文本三剑客之sed
文本三剑客之sed sed介绍 sed 简介 sed 流编辑器.sed的全称:Stream EDitor 简称sed 是个流编辑器,sed是一个行编辑器.首先它是个流编辑器是实现文本流编辑的,所谓行编 ...
- Linux文本三剑客之sed
sed命令详解 一.简介 二.工作原理 三.用法 1.地址定界 2.编辑命令 四.实例及详解 一.简介 sed是一种新型的,非交互式的流式(从上往下读取一行处理一行)的编辑器 可以执行vi和ex相同的 ...
- Linux文本三剑客之sed仗剑走天涯
一,sed是什么? sed是Strem Editor(流编辑器)缩写,是操作.过滤和转换文本内容的强大工具.对文件内容逐行(行编辑器,一行读取一次,对行编辑)进行处理调用操作并显示到STDOUT,常用 ...
- 【文本三剑客】SED
SED 一.sed编辑器 1.2sed简介 1.3sed工作流程 1.4sed命令格式 1.5常用选项 1.6常用操作 二.sed实验 2.1打印内容 2.2删除行 2.3替换 2.4插入 一.sed ...
- 文本三剑客之sed命令--文本替换;grep命令---文本过滤
目录 1.sed简介 2.sed的p命令--打印匹配行 3.sed的d命令--删除指定行 4.sed的a命令--在匹配行后面追加 5.sed的i命令--在匹配行前面插入 6.sed的c命令--整行替换 ...
- 【文本三剑客之一sed】
文章目录 一.sed命令会从文件或者标准输入中一次读取一行数据,将其复制到缓冲区,然后读取命令行或者脚本的编辑子命令,对缓冲区中的文本行进行编辑.重复此过程,一直到所有的文本行都处理完毕 1.工作原理 ...
- Linux文本三剑客(grep、sed、awk)
目录 grep 1.什么是grep和rgrep? 2.使用grep 2.1.命令格式 2.2.命令功能 2.3.命令参数 3.实战演示 sed 1.认识sed 2.使用sed 2.1.命令格式 2.2 ...
- linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)
运维工程师在做配置的过程中很多时候都需要去获取目标服务器网卡上的IP地址,那究竟用什么方式获取更便捷了,博主今天就带大家使用linux文本三剑客分别获取一下网卡的IP地址,最后我们再来对比一下. 实验 ...
最新文章
- Hibernate基本原理(一)
- proxychains 使用指北
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- 分割视图控制器(UISplitViewController)
- Postman批量接口测试
- IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
- SpringCloud微服务:阿里开源组件Nacos,服务和配置管理
- shiro 解决 跨域(仅端口不同) 登陆 问题
- 物联网核心安全系列——智能家居与数据安全问题
- 基于TCP协议的游戏代理接口测试工具<二>:工具架构与代理主体实现
- Dapps解封大众市场的动力
- 一篇博客收能收录计算机网络?
- 逍遥模拟器获取服务器信息出错,逍遥模拟器不能连上网怎么办?两招解决问题...
- 关于深信服面试的经历反省
- ATF官方文档翻译(二):Authentication Framework Chain of Trust(身份验证框架和信任链)(3)
- 自动化测试-数据驱动
- 投影坐标方差车牌垂直校正matlab实现,基于投影坐标p次方差及粒子群的车牌倾斜检测...
- 草根seo站长利用网站赚钱的方法 1
- C++中的头文件和源文件:如何写头文件
- 成为一名优秀的CTO,要具备哪些能力模型?
热门文章
- bldc电机减速原理
- 2015-2020全国各市空气质量与天气情况匹配
- 简单述三消游戏逻辑:
- 射频电路设计实录第二章,产品技术指标
- Jenkins 父pom打包报错[unknown-version]: Could not find artifact xxx
- 思迈特软件的企业级商业智能应用案例
- [buuctf]msic2
- 维宁尔将以约1.76亿美元出售在日本和中国的制动系统合资业务
- CTF misc之流量分析题套路总结
- SXSSF导出:对比一下poi-3.17版本和poi-4.1.2(4.0以上)版本的改动