Sed從入門到精通詳解

2021-08-27 11:52:04 字數 2035 閱讀 2529

定址

可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍(包括行數表示的那兩行)。如1,3表示1,2,3行,美元符號($)表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定 。

sed命令

呼叫sed命令有兩種形式:

* sed [options] 『command』 file(s)

* sed [options] -f scriptfile file(s)

a\ 在當前行後面加入一行文字。

b lable

分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。

c\ 用新的文字改變本行的文字。

d 從模板塊(pattern space)位置刪除行。

d 刪除模板塊的第一行。

i\ 在當前行上面插入文字。

h 拷貝模板塊的內容到記憶體中的緩衝區。

h 追加模板塊的內容到記憶體中的緩衝區

g 獲得記憶體緩衝區的內容,並替代當前模板塊中的文字。

g 獲得記憶體緩衝區的內容,並追加到當前模板塊文字的後面。

l 列表不能列印字元的清單。

n 讀取下乙個輸入行,用下乙個命令處理新的行而不是用第乙個命令。

n 追加下乙個輸入行到模板塊後面並在二者間嵌入乙個新行,改變當前行號碼。

p 列印模板塊的行。

p(大寫)

列印模板塊的第一行。

q 退出sed。

r file

從file中讀行。

t label

if分支,從最後一行開始,條件一旦滿足或者t,t命令,將導致分支到帶有標號的命令處,或者到指令碼的末尾。

t label

錯誤分支,從最後一行開始,一旦發生錯誤或者t,t命令,將導致分支到帶有標號的命令處,或者到指令碼的末尾。

w file

寫並追加模板塊到file末尾。

w file

寫並追加模板塊的第一行到file末尾。

! 表示後面的命令對所有沒有被選定的行發生作用。

s/re/string

列印當前行號碼。

# 把注釋擴充套件到下乙個換行符以前。

以下的是替換標記

* g表示行內全面替換。

* p表示列印行。

* w表示把行寫入乙個檔案。

* x表示互換模板塊中的文字和緩衝區中的文字。

* y表示把乙個字元翻譯為另外的字元(但是不用於正規表示式)

選項 -e command, –expression=command

允許多台編輯。

-h, –help

列印幫助,並顯示bug列表的位址。

-n, –quiet, –silent

取消預設輸出。

-f, –filer=script-file

引導sed指令碼檔名。

-v, –version

列印版本和版權資訊。

元字符集^

錨定行的開始 如:/^sed/匹配所有以sed開頭的行。 錨定

行的結束

如:/sed錨

定行的結

束如:/

se

d/匹配所有以sed結尾的行。

. 匹配乙個非換行符的字元 如:/s.d/匹配s後接乙個任意字元,然後是d。

* 匹配零或多個字元 如:/*sed/匹配所有模板是乙個或多個空格後緊跟sed的行。

匹配乙個指定範圍內的字元,如/[ss]ed/匹配sed和sed。

[^]

匹配乙個不在指定範圍內的字元,如:/[^a-rt-z]ed/匹配不包含a-r和t-z的乙個字母開頭,緊跟ed的行。

(..)

儲存匹配的字元,如s/(love)able/\1rs,loveable被替換成lovers。

& 儲存搜尋字元用來替換其他字元,如s/love/&/,love這成love

\<

錨定單詞的開始,如:/\

Python從入門到精通 if語句用法詳解

2.3 列表中檢查是否包含特定值 3 if 語句詳述 4 設定if語句的格式 if語句能夠進行條件測試,並依據一定的條件進行具體的操作 if語句的核心是乙個值為true或false的表示式,這種表示式稱為條件測試。python根據條件測試的值為true或false來決定是否執行if語句中的 多數條件...

Nginx從入門到精通

1 nginx配置檔案載入機制 採用nginx s reload命令載入nginx的配置檔案,master程序讀取配置檔案,建立新的worker程序,向老的worker程序傳送shutdown命令。老的worker程序不再接受新的請求,待老的請求處理完成後,就會停掉。2 location匹配機制 當...

scrot 從入門到精通

無論是撰寫技術教程,還是展示桌面或應用,恐怕 scrot 都是必不可少的工具。scrot 是螢幕抓圖工具中的 皎皎 佼佼者,它小巧而不失為強大,精練而不缺少靈活。scrot 主要用在命令列下,它使用 imlib2 庫來抓取並儲存影象。在 ubuntu 中,可以使用sudo apt get insta...