流编辑器:sed
一 简介:
sed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。
逐行读取文件内容到临时缓冲区,称为模式空间。接着用sed命令处理缓冲区内容,处理完之后,把缓冲区内容送往屏幕。接着处理下一行
这样不断的重复,直到文件末尾。原文件内容并没有改变。
二 简单的例子:
sed cmd 输入文件
sed '4,$d' test.in :逐行读取,删除4-最后一行
sed '3q' test.in:处理到第三行的时候退出,也就是前三行原样输出
sed 's/public/PUBLIC/' test.in:将public替换成PUBLIC (/g替换每行所有的)
sed -n 's/public/PUBLIC/g' test.in:没有输出 -n阻止输入行自动输出
sed -n 's/public/PUBLIC/p' test.in:输出只有public的行。p命令
三 指定多个命令的三种方法:
用分号隔开:sed 's/public/PUBLIC/;s/north/NPRTH/' test.in
每个命令前放置-e选项: sed -e 's/public/PUBLIC/' -e 's/north/NORTH/' test.in
使用分行命令功能,在输入单引号后按Enter回车 键就会多出提示符(>)
sed '
> s/public/PUBLIC/
> s/north/NORTH' test.in
-f:指定sed脚本文件.就是说 s/public/PUBLIC/ s/north/NORTH/等命令配置到test.sed脚本文件中。随便的本文件都可以
sed -f test.sed test.
四 sed命令cmd语法:
sed_cmd:使用格式
[address]sed_edit_cmd (通常用单引号括起来) 其中address为sed的行定位模式,用于指定将要被sed编辑的行。如果省略,sed将编辑所有的行。
sed_edit_cmd为sed对被编辑行将要进行的编辑操作。
address的定位方式:
n:表示第n行
$:表示最后一行
m,n:表示从第m到第n行
/pattern/:查询包含指定模式的行。
/pattern/,n:表示从指定模式到第n行
!:反向选择。如m,n!与m,n相反
例子:
sed -n '$p' test.in:打印最后一行 如果没有-n 原来的文本也会原样输出
sed -n '/north/p' test.in:包含 /pattern/的行
五 常用的sed_edit_cmd:
p:打印匹配行。 记得-n阻止输出。否则会先按原样打印原来的行
=:显示匹配行的行号 sed -n '/north/=' test.in
d:删除匹配行
sed -n '/public/d' test.in
a\:在。。。行后加行...
i\:在...行之前插入
c\:替换成...
例如:sed '/public/a\AAA\
>BBB\
>CCC' test.in 在public行后加三行AAA BBB CCC
六 替换命令:
s:替换命令 格式
[address]s/old/new/[gpw]
address:如果省略表示编辑所有行
g:全局替换
p:打印被修改行
w filename:将被替换的行内容写到指定文件
sed -n 's/public/PUBLIC/w data' test.in
sed 's/[0-9][0-9]$/&.5/' datafiel:将两个数字结尾的行匹配成.5结尾 &表示被替换的字符串,就是说在原串结尾加.5
流编辑器:sed的更多相关文章
- Shell 基础 -- 流编辑器 sed 详解
一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...
- 流编辑器sed
sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...
- 快速理解linux流编辑器sed命令
原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...
- shell脚本学习笔记 (流编辑器sed)
sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...
- 流编辑器sed知识点总结
sed(流文本编辑器) 每次读取一行到模式空间中, 修改的sed模式空间中的内容,并不会修改源文件, 继而输出模式空间的内容, 最后删除模式空间中的内容. sed [O ...
- Linux下的sed流编辑器命令详解
sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...
- SED单行脚本快速参考(Unix 流编辑器)(转)
sed.sourceforge.net被封杀,特在此处贴上官方的sed 使用说明文档 SED单行脚本快速参考(Unix 流编辑器) 2005年12月29日 英文标题:USEFUL ONE-LINE S ...
- Linux sed 流编辑器
sed是stream editor的简称,也就是流编辑器.盗用一张图片解释原理 命令格式: SYNPPSIS: sed [OPTION]… {script-only-if-no-other-scrip ...
- SED单行脚本快速参考(Unix 流编辑器)
------------------------------------------------------------------------- SED单行脚本快速参考(Unix 流编辑器) 200 ...
- centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课
centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~ ...
随机推荐
- pytest文档53-命令行实时输出错误信息(pytest-instafail)
前言 pytest 运行全部用例的时候,在控制台会先显示用例的运行结果(.或F), 用例全部运行完成后最后把报错信息全部一起抛出到控制台. 这样我们每次都需要等用例运行结束,才知道为什么报错,不方便实 ...
- 运行bee run之后出现的错误以及解决方法Failed to build the application:
运行bee run之后出现的错误以及解决方法 创建一个beego项目 bee new myapp 在该项目执行下面的代码 bee run 出现的问题 2020/04/22 21:12:07 INF ...
- XSS攻击 js 脚本注入
原文地址:http://www.cnblogs.com/robot/archive/2009/04/15/1436107.html 1.不要相信Request.QueryString: 相信在asp时 ...
- 1.opengl绘制三角形
顶点数组对象:Vertex Array Object,VAO,用于存储顶点状态配置信息,每当界面刷新时,则通过VAO进行绘制. 顶点缓冲对象:Vertex Buffer Object,VBO,通过VB ...
- JAVA 线上故障排查套路,从 CPU、磁盘、内存、网络到GC 一条龙!
线上故障主要会包括cpu.磁盘.内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍. 同时例如jstack.jmap等工具也是不囿于一个方面的问题的, ...
- SpringMVC异常的处理机制
SpringMVC异常的处理机制 处理流程图 其本质还是把异常交给SpringMVC框架来处理 系统的dao.service.controller出现异常都通过throws Exception向上抛出 ...
- git学习(三) git的分支操作
git的分支操作 软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究: git中跟分支 ...
- 对象部分初始化:原理以及验证代码(双重检查锁与volatile相关)
对象部分初始化:原理以及验证代码(双重检查锁与volatile相关) 对象部分初始化被称为 Partially initialized objects / Partially constructed ...
- Pytorch中cudnn版本查询
问题: Disable or able cudnn,查询版本. Disable cudnn for batch_norm: (See: @Microsoft / human-pose-estimati ...
- 求职时这样回答问题你就输了!来自IT类面试官视角的深度解读
摘要:在IT工程师准备写简历时,经常会遇到这些令人头疼的问题:应届生没有实践经验:不确定哪些信息该写不该写:不知道如何在简历上展现自己的优势:不知道如何编写项目经验一栏:为了高大上写上了自己不熟悉的技 ...