温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

sed命令之练习集

发布时间:2020-08-05 23:50:12 来源:网络 阅读:1009 作者:小杨杨雪松 栏目:编程语言

       sed意为流编辑器,在shell脚本和Makefile中作为过滤器使用非常方便,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出。它是一款轻量级流编辑器,它无需直接编辑资料,能够将编辑工作自动化。

       sed的工作方式:由标准输入读取编辑文件,读入一行或指定行放到模式空间,然后将所有编辑指令逐一对模式空间的内容进行编辑,之后将结果输出到标准输出,同时清除模式空间,就这样重复之前的操作,直到最后一行,流编辑器停止,源文件不变(除非使用-i选项)。sed主要用来编辑一个或多个文件,简化对文件的反复操作。


我们用如下的图来看看sed的工作流程:

sed命令之练习集

               

       sed的工作流程:将要处理的行读入模式空间,然后进行处理,处理完后该行被输出,模式空间被清空。然后就重复刚才的操作,读入文件中的下一行,直到文件处理完毕。

       我们有一点要清楚,因为文件内容在模式空间,并没有改变,除非使用重定向存储输出,因而不会修改源文件。

       一般情况下,数据的处理只使用模式空间,按照上图即可完成主要任务。但是我们要知道在某些时候,通过使用保持空间,还可以带来意想不到的效果。

sed主要的命令:

       h:把模式空间的内容复制到当前保持缓冲区中,把原来暂存缓冲区的内容清除掉,添加新内容。

       H:把模式空间中的内容追加在保持缓冲区中原有内容的后面。

       g:把当前保持缓冲区中的内容复制到模式空间,替换掉模式空间中当前行的内容。

       G:把当前保持缓冲区中的内容追加到模式空间,追加在保持缓冲区中原有内容的后面。

       d:删除模式空间的所有行,并读入下一新行到模式空间中。

       D:删除模式空间中的第一行,不读入下一行。

       x:交换保持空间和模式空间的内容。

       n:读取下一输入行,用下一个命令处理新的行。

       N:追加下一输入行到模式空间。


下面我们来做几道练习练练手:

  1. 一个文件里面有许多文本行,给每行结尾添加一空行:

       sed命令之练习集


2.一个文件里面有1-5个数字,每个数字分别在一行,将文件中的这几个数字倒序输出。

      sed命令之练习集


3.把一个文件里面的某一个或几个匹配的行追加到该文件结尾。

     sed命令之练习集


4.把源文件的原来一列的数字改成只有一行。

     sed命令之练习集


5.求1-100的和。

     第一种方法:

    sed命令之练习集

第二种方法:

   sed命令之练习集


6.分别打印奇数偶数行。

    sed命令之练习集


   以上就是自己在学习sed时所作的全部练习,但还远远不够,还要多多练习的!



      

       









向AI问一下细节
推荐阅读:
  1. sed命令练习
  2. sed命令

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI