1.d命令
命令d用於刪除輸入性。sed先將輸入行從文件賦值到模式空間裏。然後對該行運行sed命令,最後將模式空間裏的內容顯示在屏幕上。假設發出的是命令d。當前模式空間裏的輸入會被刪除。不被顯示。
sed '$d' datafile
#刪除最後一行。其餘的都被顯示
sed '/my/d' datafile
#刪除包括my的行,其餘的都被顯示
2. 基本sed編程舉例
使用p(rint)顯示行: sed -n '2p' temp.txt 僅僅顯示第2行,使用選項n
打印範圍: sed -n '1,3p' temp.txt 打印第1行到第3行
打印模式: sed -n '/movie/'p temp.txt 打印含movie的行
使 用模式和行號查詢: sed -n '3,/movie/'p temp.txt 僅僅在第3行查找movie並打印
顯示整個文件: sed -n '1,$'p temp.txt $爲最後一行
隨意字符: sed -n '/.*ing/'p temp.txt 注意是.*ing,而不是*ing
打印行號: sed -e '/music/=' temp.txt
附加文本:(創建sed腳本文件)chmod u+x script.sed,運行時./script.sed temp.txt
#!/bin/sed -f
/name1/ a/ #a/表示此處換行加入文本
HERE ADD NEW LINE. #加入的文本內容
插入文本: /name1/ a/ 改成 4 i/ 4表示行號,i插入
改動文本: /name1/ a/ 改 成 /name1/ c/ 將改動整行,c改動
刪除文本: sed '1d' temp.txt 或者 sed '1,4d' temp.txt
替 換文本: sed 's/source/OKSTR/' temp.txt 將source替換成OKSTR
sed 's//$//g' temp.txt 將文本中所有的$符號所有刪除
sed 's/source/OKSTR/w temp2.txt' temp.txt 將替換後的記錄寫入文件temp2.txt
替換改動字符串: sed 's/source/"ADD BEFORE" &/p' temp.txt
結果將在source字符串前面加上"ADD BEFORE",這裏的&表示找到的source字符並保存
sed結果寫入到文件: sed '1,2 w temp2.txt' temp.txt
sed '/name/ w temp2.txt' temp.txt
從文件裏讀文本: sed '/name/r temp2.txt' temp.txt
在每列最後加文本: sed 's/[0-9]*/& Pass/g' temp.txt
從 shell向sed傳值: echo $NAME | sed "s/go/$REP/g" 注意須要使用雙引號
3.基本sed編輯命令:
p 打印匹配行 c\ 用新文本替換定位文本
= 顯示文件行號 s 使用替換模式替換對應模式
a\ 在定位行號後附加新文本信息 r 從還有一個文本中讀文本
i\ 在定位行號後插入新文本信息 w 寫文本到一個文件
d 刪除定位行 q 第一個模式匹配完畢後退出或馬上退出
l 顯示與八進制ASCII代碼等價的控制字符 y 傳送字符
n 從還有一個文本中讀文本下一行,並附加在下一行 {} 在定位行運行的命令組
g 將模式2粘貼到/pattern n/