Welcome 微信登录

首页 / 操作系统 / Linux / Linux sed命令菜鸟入门

本文首先以一个简单的sed命令应用示例,说明如何使用sed命令进行文本处理,接着从sed命令的用法、工作原理、行地址模式以及sed命令支持的脚本命令详细介绍sed命令的用法。一个完整的sed命令使用简单示例现在有一个待处理文件test.txt,文件中包含一系列的位图数据1和0,它们位于<Figure Begin>和<Figure End>之间,需要将它们写入一个单独的文件,并使用.FG <insert figure here> .FE替换着部分内容。替换输入文件中的<para> 标识为.LP并删除其下的空行。最后,删除输入文件中的所有空行。处理文件内容如下:cat test.txt
  1. <para>  
  2.   
  3.   
  4. This is a test paragraph.  
  5.   
  6.   
  7. <Figure Begin>  
  8.   
  9.   
  10. 111111111111111101000000000000000000000000000000111111111111111111100000000  
  11. 000000000000000000000000000000000001111111111111111111111111111111111111111  
  12. 11111111111111111110000000000000000000  
  13.   
  14.   
  15. <Figure End>  
  16.   
  17.   
  18. <para>  
  19.   
  20.   
  21. MOre lines of text to be found after the figure.  
  22. These lines should print.  
sed脚本命令内容及解释如下:cat sedscr
  1. /<para>/{  
  2.     N                     #读入下一行,因为下一行为空行,  
  3.     c                    #使用下面的内容替换模式空间中的内容,之所以使用N命令,也是想把<para>下面的空行删除  
  4. .LP  
  5. }  
  6. /<Figure Begin>/,/<Figure End>/{      #匹配<Figure Begin>到<Figure End>行之间的内容  
  7.     w fig.test                        #将这部分中的当前模式空间中的内容写入文件fig.test中,因为sed命令式按行读取文件内容的  
  8.     /<Figure End>/i                  #在<Figure End>行前插入下面的内容  
  9. .FG  
  10. <inset figure here>  
  11. .FE  
  12.     d                                 #删除匹配的行,即删除模式空间中的内容,这样模式空间中的这部分内容不会被输出  
  13. }  
  14. /^$/d                     #删除所有空行  
sed脚本执行命令:sed -f sedscr test.txt
sed脚本执行完成后输出内容如下:
  1. .LP  
  2. This is a test paragraph.  
  3. .FG  
  4. <inset figure here>  
  5. .FE  
  6. .LP  
  7. MOre lines of text to be found after the figure.  
  8. These lines should print.  
上面简单演示了一个使用sed命令的实际例子,初学时看不懂没有关系,只需知道大概是这么个流程,然后下面会详细的解释sed命令的用法。
  • 1
  • 2
  • 3
  • 下一页
Linux CentOS以root身份登录密码忘记解决方法VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)相关资讯      Linux命令  sed  Sed命令 
  • 48 字节命令可令 Linux 系统当机!  (今 07:55)
  • LFCS 系列第一讲:如何在 Linux 上  (03月28日)
  • 在Linux笔记本上执行这句命令能致  (02月02日)
  • Linux常用命令之sed  (09月09日)
  • 运维工程师必会的109个Linux命令  (03月09日)
  • Linux 管理员都应该会的命令:sed   (01月13日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数