歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 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命令的用法。

Copyright © Linux教程網 All Rights Reserved