sed命令:sed基本用法;sed命令選項;sed命令定位;sed基本編輯
一、sed基本用法:
sed(stream editor)是流編輯器
attention:sed只是對緩衝區中原始檔案的副本進行編輯,並不編輯原始的檔案,如果需要儲存改動內容,可以選擇使用下面兩種方法:重定向 w編輯命令
呼叫sed有三種方法:
1)
在shell命令列輸入命令呼叫sed,格式為:
sed [選項] 『sed命令』 輸入檔案
2) 將sed命令插入指令碼檔案後,然後通過sed命令呼叫它,格式為:
sed [選項] -f sed指令碼檔案 輸入檔案(指令碼檔案的首行不以#!/bin/sed –f開頭)
./sed指令碼檔案 輸入檔案 (指令碼檔案的首行是#!/bin/sed –f)
推薦使用第一種方法和第三種方法
sed命令選項:
選項 意義
-n 不列印所有行到標準輸出 no
-e 表示將下乙個字串解析為sed編輯命令,如果只傳遞乙個編輯命令給sed,-e選項可以省略
express
-f 表示正在呼叫sed指令碼檔案
file
預設:sed處理完文字將輸入檔案列印到標準輸出;一旦加上-n選項,sed就不再列印輸入檔案,而只列印處理結果
當向sed命令傳遞多個編輯命令時,在每個編輯命令前需要加上-e選項
sed文字定位方法:(查詢方式)
選項 意義
x x為指定行號
x,y 指定從x到y的行號範圍
/pattern/ 查詢包含模式的行
/pattern/pattern/ 查詢包含兩個模式的行
/pattern/,x從與pattern的匹配行到x號行之間的行
x,/pattern/從x號行到與pattern的匹配行之間的行
x,y! 查詢不包括x和y行號的行
sed編輯命令
選項 意義
p列印匹配行
=
列印檔案行號
=number
a\
在定位行號之後追加文字資訊
i\ 在定位行號之前插入文字資訊
insert
d 刪除定位行
delete
c\ 用新文字替換定位文字
cover
s 使用替換模式替換相應模式
subtitute
r 從另乙個檔案中讀文字
read
w 將文字寫入到乙個檔案
write
y 變換字元
vary
q 第乙個模式匹配完成後退出
quit 只需查詢到乙個即可
l 顯示與八進位制ascii**等價的控制字元
{} 在定位行執行的命令組 {}
n 讀取下乙個輸入行,用下乙個命令處理新的行
next
h 將模式緩衝區文字拷貝到保持緩衝區
h 將模式緩衝區文字追加到保持緩衝區
x 互換模式緩衝區和保持緩衝區內容
exchange
g 將保持緩衝區內容拷貝到模式緩衝區
regu
g 將保持緩衝區內容追加到模式緩衝區
替換文字
: s/被替換的字串/新字串/[替換選項]
選項 意義
g 表示替換文字中所有出現被替換字串之處
global
p 與-n選項結合,只列印替換行
w檔名 表示將輸出定向到乙個檔案
write
預設:sed s命令將替換後的全部文字都輸出,
如果要求只列印替換行,需要結合使用-n和p選項:sed -n『s/被替換的字串/新字串/p』 輸入檔案
sed -n『s/被替換的字串/新字串/gp』 輸入檔案
g選項是替換文字中所有出現被替換字串之處
sed -n『s/被替換的字串/新字串/woutfile』輸入檔案
sed高階程式設計(一)
d 刪除多行組中的單隔行。p 列印多行組中的單隔行。next命令,小寫n命令使sed移動到資料流中文字的下一行。cat data the first meeting of the linux system administrator s group will be held on tuesday.a...
shell指令碼程式設計之sed
sed 選項 指令 動作 檔案 n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作 才會被列出來。f 直接將 sed 的動作寫在乙個檔案內,f filename 則可以執...
shell程式設計 sed的選項
sed 引數 partern commond file 標準輸出 sed sed 引數 partern commond n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin 的資料一般都會被列出到終端上。但如果加上 n 引數後,則只有經過sed 特殊處理的那一行 或者動作...