浅谈 sed

sed 是linux命令中用于数据处理的工具,能处理来自管道或者文件的输入。

语法: sed [选项] ‘[过滤字符][{]处理命令[}]‘,其中 []包围的表示不是强制必写。

  • "过滤字符"的格式是/字符串/,‘/‘不能省略
  • "处理命令"如果是多个的话用分号";"隔开,用‘{}‘包围,如果有多个处理命令,相当于一个命令集。

1. sed能对行进行处理

  1. 选项有如下几种常用的:

    -n: 安静模式,只输出做过处理的行,否则会重复输出处理的行。安静模式下只有显示的使用p才会输出到屏幕上。

    -e: 后面紧接处理命令,一次执行一个,后面还可以继续使用这个选项执行其他命令,避免使用管道或者不能多个命令同时使用的情况

    -f: 后面接脚本文件

    -r: 在处理命令中使用扩展正则表达式,默认是基础正则表达式

    -i: 以文件作为输出,即直接修改文件,而不会输出到到屏幕

    -c: 在-i的情况下,使用复制方式而不是直接修改文件的所有关系(ownership),应该就是不会修改文件的owner

  2. 处理命令有下面几种(如果不执行以下命令只要在命令前加!,例如‘1!p‘表示第一行不打印,其他命令类似):

    p: 打印输出行,语法--> ‘m,np‘,其中m,n是行号,最后一行用$表示,如果是一行则为‘mp‘,如果m,n都没有值则表示当前行。例如第2到7行-->‘2,7p‘,第5到最后                一行-->‘5,$p‘

    i: 在某行之前插入内容,语法-->‘mi xxxx‘,其中m为行号,例如在第三行之前插入hello--> ‘3i hello‘

    a: 在某行之后插入内容,语法类似i-->‘ma xxxx‘,其中m为行号,例如在第三行之后插入nihao-->‘3a nihao‘

    d: 删除某些行,语法--> ‘m,nd‘,其中m,n是行号,类似p中的定义,例如删除2到5行-->‘2,5d‘

    s:  替换行中的某些内容,语法--> ‘m,ns/regEx/replace/[g]‘,其中m,n类似p中的定义,regEx是要被替换的内容,可以是正则表达式,replace是要替换的内容,g代                 表全部都要处理,如果没有则只是替换从左到右的第一个匹配项

    q/Q: 结束处理命令,后面的行将不会再处理。语法‘q‘。

    n: 从流中读取下一行到pattern space进行处理,后面的命令将会只会处理下一行。

    N: 从流中读取下一行扩展到pattern space一起处理,后面的命令会一起处理当前行和下一行。

    w: 把当前的pattern space写入文件,语法-->‘w xxx‘,xxx代表文件名。

    W: 把当前的pattern space第一行写入文件,语法-->‘w xxx‘,xxx代表文件名。

注意:sed是以行为单位的流编辑器,所以命令每次都从流里读取一行放到模式空间(Pattern space),处理一行完了就会输出模式空间的内容到屏幕(除非设置安       静模式-n)并清理模式空间,再重复下一行,所以模式空间就像一个临时工作缓存,以行为单位。这里还有一个缓存,叫保留空间(Hold space),这个缓存不会被       清除,可以保存一些想被跨行共享的数据。它俩之间可以相互转存,通过以下命令

    h H    Copy/append pattern space to hold space. --> 拷贝/扩展 从模式空间到保留空间

    g G    Copy/append hold space to pattern space. --> 拷贝/扩展 从保留空间到模式空间

    x        Exchange the contents of the hold and pattern spaces.  --> 相互交换内容

时间: 2024-10-13 07:44:16

浅谈 sed的相关文章

浅谈sed用法

原理 一行文本被读到模式空间以后,首先会判断模式空间的行是否能被你定义的模式所匹配到,如果能匹配到就对它做一次输出操作,而后做编辑操作,如果不期望直接输出模式空间的内容到屏幕可以加-n选项 文本处理三剑客: grep, egrep, fgrep:文本过滤器 sed:Stream EDitor,流编辑器,行 awk:文本格式化工具,报告生成器 sed [OPTION]...  'script'  file1 ... script: 地址定界编辑命令 常用选项: -n:不输出模式空间中的内容至屏幕:

浅谈sed

1.1 SED 1.1.1 sed是什么 :全称字符流编辑器Stream Edite 1.1.2 sed功能与版本: 1. 处理纯文本文件.日志.配置文件 2. 增删改查 3. 查看sed版本:sed --version 1.1.3 语法格式 1. sed  [选项]  [sed指令]  [输入文件] 2. sed -i.bak 's#oldboy#oldbgirl#g' oldboy.txt 3. -i ---sed命令的参数 4. s --sed指令 5. g ---就是个修饰 1.1.4 

Linux的文本处理工具浅谈-awk sed grep

Linux的文本处理工具浅谈 awk   老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS竖着切,列的分隔符 RS横着切,行的分隔符 [语法格式] awk [–F] [“[分隔符]”] [’{print$1,$NF}’] [目标文件] awk 'BEGIN{FS="[列分隔符]+";RS="[行分隔符]+";print "-GEGIN-"

浅谈ELK日志分析平台

作者:珂珂链接:https://zhuanlan.zhihu.com/p/22104361来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 小编的话 "技术干货"系列文章意在分享技术牛人的知识干货,每期主题都不一样哟!期待各位读者在文后发表留言,来一场技术上的交流和思想上的碰撞! 2016年7月20日,本期品高云公开课由叶春草带来"可视化案发现场--浅谈ELK日志分析平台"的分享. 分享嘉宾 叶春草现就职于品高云软件技术支持工程师.就职

【架构】浅谈web网站架构演变过程

浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.maven+spri

Linux特殊符号浅谈

Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可以分以下几类 1.管道符号 字符 名称 功能描述 | 管道 传递的普通的字符串,来自于前一个命令 |xargs 管道流转换 与xargs 传递的是把字符串变成了文件名 2.目录结构 字符 名称 功能描述 . 当前目录 .. 当前目录上一级目录 3.重定向符号 字符 名称 功能描述 > 输出重定向 会

.net中对象序列化技术浅谈

.net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数 据.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.反之,反序列化根据流重新构造对象.此外还可以将对象序列化后保存到本地,再次运行的时候可以从本地文件 中“恢复”对象到序列化之前的状态.在.net中有提供了几种序列化的方式:二进制序列化

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc

单页应用SEO浅谈

单页应用SEO浅谈 前言 单页应用(Single Page Application)越来越受web开发者欢迎,单页应用的体验可以模拟原生应用,一次开发,多端兼容.单页应用并不是一个全新发明的技术,而是随着互联网的发展,满足用户体验的一种综合技术. SEO 一直以来,搜索引擎优化(SEO)是开发者容易忽略的部分.SEO是针对搜索(Google.百度.雅虎搜索等)在技术细节上的优化,例如语义.搜索关键词与内容相关性.收录量.搜索排名等.SEO也是同行.市场竞争常用的的营销手段.Google.百度的搜