shell命令之---sed

1. sed编辑器基础

  1.1 替换标记

    命令格式:s/pattern/replacement/flags

    $ cat data4.txt
    This is a test of the test script.
    This is the second test of the test script.

    有4种可用的替换标记:

      数字,表明新文本将替换第几处模式匹配的地方;

      g,表明新文本将会替换所有匹配的文本;

      p,表明原先行的内容要打印出来;

      w file,将替换的结果写到文件中。

    在第一类替换中,可以指定sed编辑器用新文本替换第几处模式匹配的地方。
        $ sed 's/test/trial/2' data4.txt
        This is a test of the trial script.
          This is the second test of the trial script

    将替换标记指定为2的结果就是: sed编辑器只替换每行中第二次出现的匹配模式。

    g替换标记使你能替换文本中匹配模式所匹配的每处地方。
      $ sed 's/test/trial/g' data4.txt
                        This is a trial of the trial script.
                        This is the second trial of the trial script.
              p替换标记会打印与替换命令中指定的模式匹配的行。这通常会和sed的-n选项一起使用。

      $ cat data5.txt
      This is a test line.
      This is a different line.
      $
      $ sed -n 's/test/trial/p' data5.txt
      This is a trial line.

             -n选项将禁止sed编辑器输出。但p替换标记会输出修改过的行。将二者配合使用的效果就是只输出被替换命令修改过的行。

     w替换标记会产生同样的输出,不过会将输出保存到指定文件中。
      $ sed 's/test/trial/w test.txt' data5.txt
      This is a trial line.
      This is a different line.
      $
      $ cat test.txt
      This is a trial line. 

  1.2 使用地址

    在sed编辑器中有两种形式的行寻址:

      以数字形式表示行区间

      以文本模式来过滤出行  

  1.3 删除行

    命令d执行删除操作。

    可以结合指定行号或是使用模式匹配

    通过特殊的文件结尾字符:
    $ sed '3,$d' data6.txt
    This is line number 1.
    This is line number 2.
    $

    sed编辑器的模式匹配特性也适用于删除命令。
    $ sed '/number 1/d' data6.txt
    This is line number 2.
    This is line number 3.
    This is line number 4.
    $

    说明 记住, sed编辑器不会修改原始文件。你删除的行只是从sed编辑器的输出中消失了。原始文件仍然包含那些“删掉的”行

  1.4 插入和附加文本

    sed编辑器允许向数据流插入和附加文本行。

    插入(insert)命令(i)会在指定行前增加一个新行;

    附加(append)命令(a)会在指定行后增加一个新行。

    命令行格式如下:

    sed '[address]command\ new line'

    例如:$ echo "Test Line 2" | sed 'i\Test Line 1'
       Test Line 1
       Test Line 2
       $

  1.5 转换命令

    转换(transform)命令(y)是唯一可以处理单个字符的sed编辑器命令。转换命令格式如下。
    [address]y/inchars/outchars/

    这里有个使用转换命令的简单例子。
    $ sed 'y/123/789/' data8.txt
    This is line number 7.
    This is line number 8.
    This is line number 9.
    This is line number 4.
    This is line number 7 again.
    This is yet another line.
    This is the last line in the file.

 

 

 

    

    

    


   

 

 

转载于:https://www.cnblogs.com/weidongliu/p/11002001.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEE Conf: Umi 4 设计思路文字稿

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。复制此链接 https:…

用户体验改善案例_改善用户体验研究的5种习惯

用户体验改善案例There’s plenty of misunderstanding around user research, whether it’s the concept of validation or one-off anecdotes being thrown around as concrete evidence for a product decision.用户研究存在很多误解,无论是验证的概念还是一次性…

一场赛跑引起的并发知识

享学特邀作者:老顾前言我们小伙伴们是不是经常需要测试代码的性能?小伙伴们是不是就会想到jmeter进行压力测试一下,模拟N个用户同时执行下,看看响应的时间多少。今天老顾就用一个经典的比赛案例,来尝试自行编写个比赛业…

oracle中使用子查询为何取到大于自然数1 rownum 浅度解析

Oracle 没有提供TOP N 语句,若希望按特定条件查询前N 条记录,可以使用伪列ROWNUM。 ROWNUM 是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列(注意:先要 有结果集)。 rownum 的值是oracle 顺序分配的从查询返回的行的编…

巴克莱对冲_“巴克莱的财政预算案”:使金钱管理对心理健康有效—用户体验案例研究

巴克莱对冲Disclaimer: all official Barclays assets used for this project are purely for educational/project purposes only and do not reflect the intentions of Barclays or any of its affiliates.免责声明:用于此项目的所有官方巴克莱资产纯粹是出于教育…

6 个对所有 Web 开发者都有用的 GitHub 仓库

作者:Mehdi Aoussiad原文:https://javascript.plainenglish.io/6-useful-github-repositories-for-all-web-developers-44f26912fd66大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与&…

快速删除数据库中所有表中的数据

今天又学到一招,可以快速删除数据库中所有的用户表中的数据。我是个菜鸟,望各位大神多多指教 select truncate table Name ; from sysobjects where xtypeU order by name asc; 该条语句执行之后会将数据库中所有的表都查询出来,复制出来之…

openfiler的iSCSI配置(二)

为什么80%的码农都做不了架构师?>>> 一.openfiler iSCSI配置 1.启动iSCSI target server服务。在Services列表下。 2.设置访问列表。在System---Network Access Configuration下设置。 3.创建卷设备 二.ISCSI客户端配置 1.安装open-iscsi # apt-get ins…

送你一份用Electron开发桌面应用的避坑指南【送3本书,含犀牛书】

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,新年第一次送3本书。抽奖规则见文末。如今,Electron 领域发生了重大的变革,Electron 版本更新换代极快,难以计数…

时间续

mois : janvier fvrier mars avril mai juin juillet aot septembre octobre novembre dcembre semaine : lundi mardi mercredi jeudi vendredi samedi dimanche 转载于:https://www.cnblogs.com/lavieenrose/archive/2012/02/18/2357597.html

nginx修改upstream不重启的方法(ngx_http_dyups_module模块)

为什么80%的码农都做不了架构师?>>> nginx很强大,第三方模块也不少,淘宝在nginx上很活跃,特别是章亦春,他参与的模块至少10, 好了今天主角不是他,是一款动态配置upstream的模块,这个…

c# 设计原则需要学习吗_向最好的学习:产品设计原则

c# 设计原则需要学习吗重点 (Top highlight)In my job as Design Team Lead at SimpleSite, I’ve recently been part of creating a set of Product Design Principles. In this process, I spent a lot of time studying the theory, learning about best practices, and ge…

初学Java-接口

在Java语言中,接口有两种意思: 一是指概念性的接口,即指系统对外提供的所有服务。类的所有能被外部使用者访问的方法构成了类的接口 二是指用interface关键字定义的实实在在的接口,也称为接口类型。它用于明确的描述系统对外提供的…

Node.js 2021年开发者报告解读

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。很多人觉得Node.js…

搭建nginx反向代理用做内网域名转发

为什么80%的码农都做不了架构师?>>> 情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的…

外国经典儿童读物合集pdf_帮助父母在线购买儿童读物–用户体验案例研究

外国经典儿童读物合集pdfTŤ As our first group project at GA, we needed to quickly learn how to use several online tools that helped our team of 4 collaborate and communicate while socially distant. Despite the rather extreme circumstances our team was stil…

Windows Azure Marketplace增加对六种语言和HTML5应用程序的支持

对于那些不熟悉Windows Azure Marketplace的人来说,它是一个供数据供应商和开发人员购买和销售数据集和应用程序的在线市场。 可以在世界上的26个国家使用Windows Azure Marketplace,它现在支持6种语言,包括日语、汉语、法语、德语、西班牙语…

如何优雅处理 async await 错误——解读小而美的 await-to-js 库

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。这是源码共读活动第…

同态加法_同态的Spotify

同态加法重点 (Top highlight)When neumorphism was predicted to be one of the top 2020 UI design trends, I wanted to give it a shot. Having said that, I wanted to explore a type that had not gone overboard, neumorphism in Dark Mode.当neumorphism预计为顶部202…

ubuntu清除无效的右键打开方式

为什么80%的码农都做不了架构师?>>> 今天安装了几个程序又将它们删除了之后发现了一个比较严重的后遗症,在相关文件右键打开方式中出现了许多实际已经不存在的文件打开程序名。想了多种方法去除,可是效果不佳,最终采用…