歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> sed 單行腳本快速參考

sed 單行腳本快速參考

日期:2017/3/1 10:02:41   编辑:Linux編程

sed (stream editor)

功能說明:利用script來處理文本文件。
語法:sed [-hnV][-e<script>][-f<script文件>][文本文件]
補充說明:sed可依照script的指令,來處理、編輯文本文件。
參數:
-e<script>或--expression=<script> 以選項中指定的script來處理輸入的文本文件。
-f<script文件>或--file=<script文件> 以選項中指定的script文件來處理輸入的文本文件。
-h或--help 顯示幫助。
-n或--quiet或--silent 僅顯示script處理後的結果。

-V或--version 顯示版本信息。

sed工作原理:

sed是一個非交互式的流編輯器。所謂非交互式,是指使用sed只能在命令行下輸入編輯命令來編輯文本,然後在屏幕上查看輸出;而所謂流編輯器,是指sed每次只從文件(或輸入)讀入一行,然後對該行進行指定的處理,並將結果輸出到屏幕(除非取消了屏幕輸出又沒有顯式地使用打印命令),接著讀入下一行。整個文件像流水一樣被逐行處理然後逐行輸出。 下面我們看一下sed的工作過程。 sed不是在原輸入上直接進行處理的,而是先將讀入的行放到緩沖區中,對緩沖區裡的內容進行處理,處理完畢後也不會寫回原文件(除非用shell的輸出重定向來保存結果),而是直接輸出到屏幕上。sed運行過程中維護著兩個緩沖區,一個是活動的“模式空間(pattern space)”,另一個是起輔助作用的“暫存緩沖區(holding space)”。一般情況下,每當運行sed,sed首先把第一行裝入模式空間,進行處理後輸出到屏幕,然後將第二行裝入模式空間替換掉模式空間裡原來的內容,然後進行處理,以此類推。

一般情況下暫存緩沖區是用不到的,但有特殊的命令可以在模式空間與暫存緩沖區之間交換數據,後文將有介紹。由於sed對文本的所有操作都是在緩沖區裡進行的,所以不會對原文件造成任何破壞。

Copyright © Linux教程網 All Rights Reserved