1、sed:stream editor 行編輯器。工作原理:預設不編輯原始檔,僅僅對模式空間的資料做處理。一行行將檔案讀入模式空間,處理完後再將模式空間的內容輸出一遍。
sed和grep、awk編輯器都是shell程式設計中的重要工具。
2、sed語法:
sed [option] 'addresscommand' file
-n:靜默模式不再顯示空間中的內容
-i:直接修改原始檔,不建議使用
-e script -e script :可以同時執行多個指令碼
-f: sed -f /path/to/scripts file 執行指令碼
-r:表示使用擴充套件正規表示式
address:
1>startline,endline
比如1,100
$代表最後一行
2>/regexp/
/^root/
3>/pattern1/,/pattern2/
第一次被匹配到最後一次被匹配
4>linenumber
指定的行
5>startline,+n
從startline開始,向後n行
command:
d:刪除符合條件的行
p:顯示符合條件的行
a \string:在指定行後邊後邊追加新行,內容為string
i \string :在制定的行前邊插入新行,內容為string
r file:將檔案內容新增到符合條件的行處
s/pattern/string/ 修飾符:查詢並替換,預設只替換每一行中的第一次沒模式匹配到的字串,/可以用其他的符號代替如s### s@@@
加修飾符g:全域性替換
i:忽略字元大小寫
&:引用模式匹配整個串
3、使用例項
sed "1,2d" /etc/fstab //刪除1-2行的內容
sed 「1,2d」 /etc/fstab //刪除
1-2行的內容
sed 「/^\//d」 /etc/fstab //刪除斜線開頭的行
sed -n 「/^\//p」 /etc/fstab //-n靜默模式,只顯示符合條件的行,不再顯示模式空間的行
sed 「/^\//a \#hello1\n#hello2」 /etc/fstab //符合條件的行後追加兩行
sed 「2r /etc/issue」 /etc/fstab //將符合條件的第二行後邊追加上從
issue
檔案中讀取的內容
sed 「/boot/w /tmp/1.txt」 /etc/fstab //將符合條件的行寫到目標檔案
sed 「s/oot/oot/g」 /etc/fstab //將檔案中所有的行中凡是有
oot的替換為
oot 其中g
全域性替換
sed 『s#l..e#&r#g』 sed.txt // 將前邊匹配到的字串用&引用
sed 『s#\(l..e\)#\1r#g』 sed.txt // 將前邊匹配到的字串用
\1引用
#號裡邊使用
/就不用轉義了,裡邊的分組()得轉義
history | sed 『s#^[[:space:]]*##g』 | cut -d 『 』 -f1 //用於進行檢視監控執行命令歷史很好用
echo '/etc/rc.d/1.txt' | sed 's@^(/.*/)(.*)@\2@g'
//取得路徑的檔名(基名)取得路徑檔名
sed命令基本用法
sed是乙個飛互動式文字編輯器 sed只對緩衝區中原始檔案的副本進行編輯,並不編輯原始的檔案 呼叫sed的方法 在shell命令列輸入命令呼叫sed,格式為 sed 選項 sed命令 輸入檔案 sed 選項 f sed指令碼檔案 輸入檔案.sed 指令碼檔案 輸入檔案第 種方式的sed指令碼檔案與第...
sed命令基本用法 vbird
usage sed nefr 動作 n 使用安靜模式,在一般sed的用法中,所有來自stddin的資料一般都會被出到螢幕上,但如果加上 n引數,則只有經過sed特殊處理的那一行才會被列出來。e 直接在命令列模型上進行sed的動作編輯 f 直接將sed的動作寫在乙個檔案內,f filename則可能執...
sed命令的基本用法
sed stream editor 是流編輯器,可對文字檔案和標準輸入進行編輯。sed只是對快取區中的原始檔案的副本進行編輯,並不編輯原始的檔案,如果需要儲存改動內容,可以選擇使用重定向和w編輯命令。呼叫sed有三種方法 1.在shell命令列輸入命令呼叫sed,格式為 sed 選項 sed命令 輸...