歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux sed命令菜鳥入門

Linux sed命令菜鳥入門

日期:2017/2/28 15:31:56   编辑:Linux教程

本文首先以一個簡單的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. This is a test paragraph.
  3. <Figure Begin>
  4. 111111111111111101000000000000000000000000000000111111111111111111100000000
  5. 000000000000000000000000000000000001111111111111111111111111111111111111111
  6. 11111111111111111110000000000000000000
  7. <Figure End>
  8. <para>
  9. MOre lines of text to be found after the figure.
  10. 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