標籤:des style class ext com 使用
第一部分:sed命令選項
sed選項 |
說明 |
-n, --quiet, --silent |
靜默模式,取消將模式空間中的內容自動列印出來。 |
-e script, --expression=script |
以選項指定的script來處理文本。 |
-f script‐file, --file=script‐file |
以選項指定的script‐file檔案來處理文本,也就是可以將sed程式寫到檔案中,然後通過‐f選項指定sed程式。 |
-i[SUFFIX], --in-place[=SUFFIX] |
就地編輯檔案,如果指定了‐i的值(suffix)sed將會備份一份原檔案。 |
-l N, --line-length=N |
也就是說如果後面的command中如果有l(是英文L的小寫),就可以通過這裡的‐l選項來指定每一行的顯示長度,預設是70個字元,如果超過,將會通過跳脫字元“\”來換行。例如 sed ‐n ‐l 10 ‘1,2l‘ textfile 將第一和第二行按每行10個字元顯示,包括逸出字元。 注意:該選項必須要與後面的 –e 指定的指令l一起用。 |
--posix |
禁用所有的GNU擴充。 |
-r, --regexp-extended |
在指令碼中使用擴充Regex。 |
-s, --separate |
將輸入檔案視為各個獨立的檔案而不是一個長的連續輸入。 |
--version |
查看當前sed版本 |
-u, --unbuffered |
從輸入檔案裝載最少的資料,並且重新整理輸出緩衝區,也就是說盡量少緩衝input和output 要隨時更新。 |
第二部分:sed命令
sed命令 |
說明 |
a |
在當前合格行後面插入文本行,新的文本行用反斜線“\”與a命令隔開。 |
c |
用新的文本去修改選定的行,新的文本行用反斜線“\”與c命令隔開。 |
i |
在當前合格行的前面插入文本行,新的文本行用反斜線“\”與i命令隔開。 |
d |
刪除模式空間中的全部行,繼續進行下一行。 |
D |
在模式空間中刪除掉第一行文本,開始從input中讀取下一行,但是如果此時模式空間中還有文本行,將會再用這個資料行進行sed script一次。 |
p |
列印當前模式空間(Pattern space)中的全部內容。 |
P |
列印當前模式空間(Pattern space)中內容的第一行資料。 |
q |
馬上退出sed命令,不再處理任何輸入,除非沒有加‐n(禁止自動輸出)選項,否則sed還會將當前模式空間中的內容(當前處理行)輸出。 |
Q |
馬上退出sed命令,不再處理任何輸入 |
n |
將當前行的下一行資料覆蓋進當前模式空間(Pattern space)的內容中。 |
N |
將當前行的下一行資料追加進當前模式空間(Pattern space)的內容中。 |
h |
將模式空間(Pattern space)中的資料複製到保留空間(Hold space)中。 |
H |
將模式空間(Pattern space)中的資料追加到保留空間(Hold space)中。 |
g |
將保留空間(Hold space)的資料複製到模式空間(Pattern space)中。 |
G |
將保留空間(Hold space)的資料追加到模式空間(Pattern space)中。 |
x |
交換保留空間(Hold space)和模式空間(Pattern space)的內容。 |
r |
從指定的檔案中讀取內容,附加到選定行之後。 |
R |
從指定的檔案中讀取第一行,附加到選定行之後。 |
w |
將當前模式空間(Pattern space)的全部內容寫入到指定檔案中 |
W |
將當前模式空間(Pattern space)內容中的第一行寫入到指定檔案中。 |
l |
將當前行以可見的嚴格的形式列出來。 |
= |
輸出當前處理行的行號。 |
F |
列印當前的輸入檔案的檔案名稱。 |
e |
此命令後可以執行shell命令 |
{command} |
命令分組 |
! |
後面的命令對所有沒有被匹配的行發生作用 |
b label |
將控制分支到標籤,如果標籤被忽略,將控制分支到指令碼後面。 |
t label |
如果s指令發生替換操作,儘管已經讀入輸入的最後一行,或者已經是最後的t、T,都會轉移到指定的標籤後;如果忽略具體的標籤,將會將控制轉移到指令碼末尾。 |
T label |
和t差不多,只是這裡是s指令沒有發生替換操作然後就轉移控制到指定標籤,如果s指令發生替換,就不轉移控制。 |
s/regexp/replacement/ |
嘗試對模式空間中的內容進行Regex“regexp”的匹配,如果匹配成功,將會用“replacement”來代替匹配的部分;“replacement”可以包含特殊字元“&”,“&”用來代替匹配“regexp”的模式空間的內容,而\1、\2、\3……\9表示“regexp”的子運算式的匹配內容。 |
y/source/dest/ |
用另一種字母體系將模式空間(Patter space)內出現的“source”字元替換成對應的“dest”字元。 |