sed命令的使用和说明
sed的三种用法
1.shell命令行输入命令
格式:sed [选项] ’sed命令‘ 输入文件
2.将sed命令出入脚本文件后,sed命令调用
格式: sed [选项] -f sed脚本文件 输入文件
3.将sed命令插入脚本文件后,三种脚本文件可执行,直接执行脚本文件
格式:./sed脚本文件 输入文件
sed选项
-n 不显示所有行到屏幕(标准输出)
-e 表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑 命令给sed,-e选项可以省略
-f 表示正在调用sed脚本文件
sed的两种定位文本方式
1.使用行号,指定一行,或指定行号范围
2.使用正则表达式
定位文本
x x为指定行号
x,y 指定从x到y的行号范围
/pattern/ 出现包含模式的行
/pattern/pattern/ 查询包含两个模式的行
/pattern/,x 从x号到与pattern的匹配行之间的行
x,y! 查询不包括x和y行号的行
sed编辑命令
p 打印匹配行
= 打印文件行号
a\ 在定位行号之后追加文本信息
i\ 在定位行号之前插入文本信息
d 删除定位行
c\ 用新文本替换相应模式
r 从另一个文件中读文件
w 将文本保存到一个文件
y 变换字符
q 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
n 地区下一个输入行,用下一个命令处理新的行
h 将模式缓冲区的内容复制到保持缓冲区
H 将模式缓冲区的文本追加到保持缓冲区
x 互换模式缓冲区和保持缓冲区的内容
g 将保持缓冲区的内容复制到模式缓冲区
G 将保持缓冲区的内容追加到模式缓冲区
*** 一、文本选项
1.sed命令的-n选项 --不显示所有行到屏幕(标准输出)
例子
sed -n '1p' input 只显示文本第一行
sed '1p' input 不止打印第一行,还打印文本的全部内容
sed命令打印范围行
例子
sed -n ’3,6p' input 打印文本的3到6行
打印匹配模式 -n ‘/ca/p' input 打印文本中含有ca的行
2.sed命令的-e选项 --使用多个编辑命令
例子
sed -n '/ca/=' input 打印含有ca的行号
例子
sed -n -e '/ca/p' -e '/ca/=' input 打印行有ca的行及行号
注意:不支持同时带多个编辑命令的用法
如 sed -n '/ca/p=' input
3.sed命令的-f选项
sed ’指定地址a\text' 输入文件
例子:
sed '/file:/a\i love you.' input
在文本input中含有file:的行后面另起一行添加i love you(作为一行)
脚本执行追加 --在匹配行的后面插入一行内容
touch zhuijia.sed
#!/bin/sed -f #调用sed脚本
/file:/a\ # a\表示此处换行添加文本
#所添加的文本内容
l like you.\ #"\"符号表示换行
l love you.
执行脚本
给执行权限
./zhuijia.sed input
+++++++++++++++++++++++++++++++++++++++++++++++
***二、文本定位
1.匹配元字符
例子
sed -n '/\./p' input 匹配文本中含有”.“的行
2.使用元字符进行匹配
例子
sed -n '$p' input 匹配文本最后一行
sed -n '/.*bus/p' input 匹配包含bus结尾的任意字符串
3.!符号
例子
sed -n '2,10!p' input 匹配不再2到十行的所有行
4.使用行号与关键字匹配限定行范围
例子
sed -n '/ca/,$p' input 打印与ca的匹配行到最后一行
sed -n '3,/ca/p' input 打印第三行到ca的匹配行
+++++++++++++++++++++++++++++++++++++++++++
***三、sed编辑命令
1.插入文本 --在匹配行的前面插入一行内容
格式:sed '指定地址i\text' 输入文件
例子
sed脚本
#!/bin/sed -f
/file:/i\ #i\表示此处换行插入文本
we insert a new line. #插入的文本内容
作用:在file:所在的行的上一行插入 we insert a new line.这一 行内容
2.修改文本 --匹配的文本行用新文本替代
格式:‘指定地址c\text' 输入文件
例子
#!/bin/sed -f
/file:/c\ #c\表示此处换行修改文本
We modify this line #修改的文本内容
作用: 将file:所在的文本行替换成 We modify this line文本 行
3.删除文本 --删除指定行或指定行范围
格式:删除地址d
例子
sed '1d' input 删除文本的第一行
sed '$d' input 删除文本的最后一行
sed '1,10d' input 删除文本的1到10行
sed '/[Cc][Ee]/d' 删除含有不区分大小写的关键字ce的所有行
4.替换文本
格式:s/被替换的字符串/新字符串/[替换选项]
替换选项
g 表示替换文本中所有出现被替换字符串之处
p 与-n选项结合,至打印替换行
w文件名 表示将输出定向到一个文件
1>p选项
命令格式:sed -n 's/被替换的字符串/新字符串/Np' 输入文件
没有-n 显示替换了字符串后的文本
没有p 不显示任何内容
都有 只显示替换了字符串的行
Np 替换每行的第N次匹配
例子
sed 's/ca/ce/p' input 将文本中含有ca的行中的第一个ca 替换成ce,并将替换后的文本显示
sed -n 's/ca/ce/' input 将文本中含有ca 的行中的第一个 ca 替换成ce,不显示文本
sed -n 's/ca/ce/p' input 将文本中含有ca的行中第一个ca替 换成ce,只显示替换的行
sed -n 's/ca/ce/2p input 将文本中国含有ca的行中的第二个 ca替换成ce,只显示替换的行
2>g选项
命令格式:sed -n 's/被替换的字符串/新字符串/g' 输入文件
没有g 只替换每行第一个可以替换的字符串
有g 替换每行所有可以替换的字符串
例子
sed -n 's/ca/ce/g' 将文本中含 有ca的行的所有ca替换成ce, 只显示替换的行
3>w选项
命令格式:se -n '被替换的字符串/新字符串/w output' input
例子
sed -n 's/ca/ce/w output' input 将文本中的ca替换成ce,并将结果写 入output文件
4>文本替换结合& --将被替换的字符串保存到&中
例子
sed -n '/ca/(&)/p' input ==sed -n '/ca/(ca)/p'
5.写入一个新文件
命令格式:指定地址 w 文件名
例子
sed -n '1,5 w output' input 将文本input中的1到5行写入到output中
sed -n '/ca/w output' input 将文本input中匹配ca的行写入到output中
6.从文件中读入文本 ---将其他文件中的文本读入并附加到指定地址之后
格式:指定地址 r 文件名
例子
sed '/ca/r otherfile' input 将otherfile文件中的所有文本插入到 input文本中匹配ca的文本行后面
7.退出命令
格式:指定地址 q
例子
sed '5 q' input 打印文本前5行,然后退出
sed -n '/.r.*/p' input 查找”所有的“任意字符后跟r字符再跟0个或多 个任意字符
sed -n '/.r.*/q' 查找”第一个“任意字符后跟r字符再跟0个或多 个任意字符,然后退出查找
8.变换命令
格式:sed 'y/被变换的字符序列/变换的字符序列/' 输入文件
例子:
sed ‘y/12345/abcde/' input 将文本中的12345一一对应的替换为abcde
注意:被变换字符序列和变换字符序列必须等长
9.显示控制字符
例子
sed -n '1,$1' input 显示文本中的所有控制字符(如:shift,退格键等)
10.在等位行执行命令组
例子
等价命令 sed -n -e '/ca/p' -e '/ca/=' input
sed -n '/ca/{p;=}' input
sed '/ca/{s/i/I/g;s/le/99/;}' input 匹配ca的文本行中将所有i替 换为I,匹配行的第一个le替换为99
+++++++++++++++++++++++++++++++++++++++++++++++++++
***四、高级编辑
1.处理匹配行的下一行
例子
sed '/ca/{n;s/11/99;}' input 将文本中ca的匹配行的下一行中的ll替换 为99
2.sed缓冲区的处理??????????????????????????
sed的两种缓冲区
模式缓冲区
保持缓冲区
例子
sed -e '/ca/h' -e 'ce/x' -e '$G' input
3.利用分号分隔多个编辑命令
格式:sed '编辑命令1;编辑命令2;......'输入文件
例子
sed 's/ca/ce; s/csa/ce' input 将文本中ca替换为ce,csa替换为ce
bourne shell命令行中
sed '
>s/ca/ce
>s/csa/ce
....
>$d' input
转载于:https://blog.51cto.com/moonend/1616625
sed命令的使用和说明相关推荐
- Linux下Sed命令的用法(之替换)
Linux 操作系统最大的一个好处是它带有各种各样的实用工具.存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具.可以简化关键情况下操作的一个实用 工具是 sed.它是任何管理员的工具包中最 ...
- linux之sed命令的用法
2019独角兽企业重金招聘Python工程师标准>>> sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作 ...
- linux脚本中sed -i,Linux 中常用的sed命令
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...
- sed 命令自己总结
sed命令是流编辑器,通过man命令查看 Sed is a stream editor. sed命令工作模式是一行一行读取文件或者输入,并写入到内存中,如果匹配sed设置的命令则执行并输出到屏幕,不匹 ...
- linux shell sed命令 在文本每行 行尾 或 行首 添加字符
用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&am ...
- linux sed命令 删除指定行
sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the co ...
- linux sed命令 常用方法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: se ...
- linux sed命令新文件名,linux中sed命令批量修改
sed命令下批量替换文件内容 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名 -i 表示inplace edit,就地修改文件 ...
- linux之sed命令n,N,d,D,p,P,h,H,g,G,x解析
前言 sed执行模板 = sed '模式{命令1;命令2}' 文件,即逐行读入模式空间,执行命令,最后输出打印出来. sed的语法格式: sed [option] 'pattern{sed-comma ...
- linux a文本编辑大全,Linux sed 命令 - Linux文档编辑命令大全
Linux sed 命令是利用脚本来处理文本文件. sed 可依照脚本的指令来处理.编辑文本文件. Sed 主要用来自动编辑一个或多个文件.简化对文件的反复操作.编写转换程序等. 语法sed [-hn ...
最新文章
- 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个
- Angular cli 发布自定义组件
- memset、memcpy、strcpy、HeapAlloc
- Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误
- 【牛客 - 283H】图论一顿套模板(思维转化,Dijkstra)
- 2017-2018-1 20155209 《信息安全系统设计基础》第一周学习总结
- VB.NET的数据库基础编程[zz]
- raspbian linux,如何在 Raspberry Pi 上安装 Raspbian
- b2c京东流程图_京东商城的商业模式及其运作流程(精)
- python如何更新pip_[Python] 如何更新 PIP 到最新版本?
- 折腾手机与平板的心得体会
- 怎么调整计算机的音量,笔记本音量怎么调_如何调整笔记本电脑的音量-win7之家...
- 翻译文章“AST 模块:用 Python 修改 Python 代码”---!!注意ironpathyon未实现此功能...
- blas、lapack、atlas在Ubuntu上的安装
- Fluent Search
- [地图]常用的地图结构
- 2021湖北省普通高考成绩查询果,2021年湖北高考体检时间项目及体检结果查询公布时间...
- 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变
- 模拟电路学习常用原件之电阻的作用和仿真
- TVB经典电视剧--《创世纪》回忆
热门文章
- C#调用存储过程的通用类
- R-CNN , Fast R-CNN , Faster R-CNN原理及区别
- mongodb 物理删除数据
- Monkey脚本编写
- Android 动画效果及Interpolator和AnimationListener的使用
- This task is currently locked by a running workflow and cannot be edited
- ARP、Tracert、Route 与 NBTStat命令详解
- 一位台湾校长的讲话。学习!!!
- Vue2 MVVM 双向绑定(数据劫持+发布者-订阅者模式)
- mac上的更新node npm