Linux sed 命令介紹 一

2021-07-31 09:47:14 字數 1752 閱讀 5376

1. sed 命令基本用法

sed 從文字的乙個文字行或標準輸入中讀取資料,將其複製到緩衝區,然後讀取命令列或者指令碼的第乙個命令,對此命令要求的行號進行編輯,重複此過程,直到命令列或指令碼中的所有命令都執行完畢。

sed命令適用於以下的三種場合:

1. 編輯相對互動式文字編輯器而言太大的檔案

2. 編輯命令太複雜,在互動式文字編輯器中難以輸入的情況

3. 對檔案掃瞄一遍,但是需要執行多個編輯函式的情況。

sed 'sed 命令' input_file >result-file

2. sed 呼叫的三種方式:

1. 在shell命令列紅輸入命令呼叫sed,格式為:

sed [選項] 'sed命令' 輸入檔案

sed [選項] -f sed指令碼檔案 輸入檔案

./sed指令碼檔案  輸入函式

3. sed 命令選項以及意義

-n 不列印所有行到標準輸出

-e 表示將下乙個字串解析為sed編輯命令,如果只傳遞乙個編輯命令給sed, -e 選項可以省略

-f  表示正在呼叫sed指令碼檔案

4. sed命令

sed命令通常由文字定位行和sed編輯命令兩部分組成,sed編輯命令對定位文字進行各種處理。

sed提供如下兩種方式的文字定位:

1. 使用行號,指定一行或指定行號範圍

2. 使用正規表示式

常用的sed命令定位文字的方法如下:

xx 為指定行號

x,y 指定從x到y行的行號範圍

/pattern/ 查詢包含模式的行

/pattern/pattern/查詢包含兩個模式的行

/pattern/,x從與pattern的匹配行到x行號之間的行

x,/pattern/從x行到與pattern的匹配行之間的行

x,y!  查詢不包含x和y行號的行

常用的sed編輯命令如下

p列印匹配的行號

=列印檔案行號

a\在定位行號之後追加文字資訊

i\在定位行號之前插入文字資訊

d刪除定位行

\c用新文字替換定位文字

s使用替換模式替換相應的模式

r從另乙個檔案中讀文字

w將文字寫入另乙個檔案

y變換字元

q第乙個模式匹配完成後退出

1顯示與八進位制ascii 碼等價的控制字元

{}在定位行執行的命令組

n讀取下乙個輸入行,用下乙個命令處理新的行

h將模式緩衝區的文字複製到保持緩衝區

h將模式緩衝區的文字追加到保持緩衝區

x互換模式緩衝區和保持緩衝區的內容

g將保持緩衝區的內容複製到模式緩衝區

g將保持緩衝區的內容追加到模式緩衝區

5. sed命令常用的命令

例如利用sed命令刪除第1行和最後一行

#sed -n '1d' input_file

# sed -n  '$d' input_file

例如,刪除input_file檔案中的1到10行

# sed -n '1,10d' input_file

例如, 刪除第5行到最後一行

# sed -n '5,$d' input_file

替換文字:

#s/被替換的字串/新字串/ [替換選項]

預設的情況下,sed s 命令將替換後的全部文字都輸出,如果要求只列印替換行,需要結合使用-n 和 -p 選項,命令格式如下:

# sed -n 's/被替換的字串/新字串/p'  輸入檔案

linux sed命令介紹

3.sed命令 呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s a 在當前行後面加入一行文字。b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。c 用新的文字改變本行的文字...

linux sed命令詳解

1.sed簡介 3.sed命令 呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s a 在當前行後面加入一行文字。b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。c 用新的文...

linux sed命令詳解

3.sed命令 呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s a 在當前行後面加入一行文字。b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。c 用新的文字改變本行的文字...