[option]
-n不輸出模式空間內容到螢幕,即不自動列印
-e多點編輯
-f/path/script_file。從指定檔案中讀取編輯指令碼
-r支援使用擴充套件正規表示式
-i.bak
備份檔案並原處編輯
位址定界
#:指定的行 , $:最後一行
/pattern/:被此處模式所能夠匹配到的每一行
3.位址範圍
#,##,+#
/pat1/,/pat2/
#,/pat1/
4. ~:步進
1~2 奇數行
2~2 偶數行
編輯命令
p:列印當前模式空間內容,追加到預設輸出之後
a[\]text:在指定行後面追加文字,支援使用\n實現多行追加
i[\]text:在行前插入文字
c[\]text:替換行為單行或多行檔案
w /path/somefile:儲存模式匹配的行至指定檔案
r /path/somefile:讀取指定檔案的文字至模式空間中匹配到的行後
=:為模式空間中的行列印行號
!:模式空間中匹配行取反處理
高階編輯命令
p:列印模式空間開端至\n內容,並追加到預設輸出之前
h:把模式空間中的內容覆蓋至保持空間中
h:把模式空間中的內容追加至保持空間中
g:從保持空間取出資料覆蓋至模式空間
g:從保持空間取出資料追加至模式空間
x:把模式空間中的內容與保持空間中的內容進行交換
d:刪除模式空間中的行 d:如果模式空間包含換行符,則刪除知道第乙個換行符的模式空間中的文字,
並不會讀取新的輸入行,而使用合成的模式空間重新啟動迴圈。如果模式空間不包含換行符,則會像發
出d命令那樣啟動正常的新迴圈
例題
1.刪除/etc/grub2.cfg檔案中所有以空白開頭的行行首的空白字元
[root@cloud ~]# sed -r "/^[[:space:]]*$/d" /etc/grub2.cfg
2.刪除/etc/fstab檔案中不以#開頭,後面至少跟乙個空白字元的行的行首的和空白字元
[root@cloud ~]# sed -r "/^# *|^$/d" /etc/fstab
3.在/etc/fstab檔案中不以#開頭的行的行首增加#號
[root@cloud ~]# sed -r -n "/^[^#]/s/(.*)/#\1/p" /etc/fstab
4.處理/etc/fstab路徑使用sed命令取出其目錄和基名
[root@cloud ~]# echo /etc/fstab | sed -r "s@(.*/)(.*$)@\2@"
5.利用sed取出ifconfig命令中本機的ipv4位址
[root@cloud ~]# ifconfig eth0 | sed -r -n "s/.*inet (.*) net.*/\1/p"
6.統計centos安裝光碟中package目錄下的所有rpm檔案的以. 分割倒數第二個欄位的重複次數
[root@cloud ~]# mount /dev/cdrom /opt/***
[root@cloud ~]# ls /opt/***/packages/ | sed -r "s/.rpm$//" | sed -r "s/.*\.(.*)/\1/" | sort | uniq -c
[root@cloud ~]# ls /opt/***/packages/ | sed -r "s/.*\.(.*).rpm/\1/" | sort | uniq -c
7.將文字檔案的n和n+1行合併為一行,n為奇數行
[root@cloud ~]# seq 10|xargs -n2
[root@cloud ~]# seq 10|sed 'n;s/\n/ /'
sed命令詳解
sed 是乙個精簡的 非互動式的編輯器。它能執行與編輯vi和emacs相同的編輯任務。sed編輯器不提供互動使用方式 只能在命令列輸入編輯命令 指定檔案 名,然後在螢幕上察看輸出。sed編輯器沒有破壞性。它不會修改檔案,除非用shell重定向來儲存輸出結果。預設情況下,所以的輸出都被列印到螢幕上。1...
sed命令詳解
sed 簡介 sed 意為流編輯器,源自英語 stream editor 的縮寫 是unix常見的命令列程式。sed 用來把文件或字串裡面的文字經過一系列編輯命令轉換為另一種格式輸出。sed 通常用來匹配乙個或多個正規表示式的文字進行處理。分號 可以用作分隔命令的指示符。常用的sed命令 模式 p ...
sed命令詳解
sed編輯器逐行處理輸入,然後把結果傳送到螢幕。i選項 直接作用原始檔,原始檔將被修改。sed命令和選項 a 在當前行後新增一行或多行 c 用新文字替換當前行中的文字 d刪除行 i 在當前行之前插入文字 h把模式空間的內容複製到暫存緩衝區 h把模式空間的內容新增到緩衝區 g取出暫存緩衝區的內容,將其...