vim ,sed
1.首先,sed作為一個流編譯器,它是對文本進行處理的,它和grep雖然都是對文本進行處理的,但是sed的處理機制和grep還是有很大的不同的,grep:文本過濾(模式:pattern)工具;grep, egrep, fgrep(不支持正則表達式搜索)sed:stream editor,文本編輯工具;awk:Linux上的實現gawk,文本報告生成器。sed處理文本是一次處理一行的內容,把需要處理的行存儲到臨時緩沖區,稱為“模式空間”,再sed處理緩沖區中的內容,而后,把處理后的內容輸出到屏幕。
sed的格式為:
sed [option] … 'script' inputfile
-n :不輸出模式空間內容的自動打印,常與 -p 配合使用
-e :多點編輯,就是-e …-e … 進行多條件匹配。
-r :是支持擴展正則表達式
-i :原處編輯;sed默認是歲對文件進行復制到模式空間內再進行編譯,使用-i選項后,sed是直接對原文件進行的修改。
script :地址定界
(1).不給地址 :對全文進行處理
(2).單地址: #:指定的行 ;/pattern/ :被此處模式所能夠匹配到的每一行
(3).地址范圍:
#,# 從第一個#代替的數到第二個#代替的數的行
#,+#
/pat1/,/pat2/
#,/pat1/: 從#號開始到第一次能匹配結束
(4). 步進地址 ~
1~2 :指從第一行開始每次步進兩行,1,3,5,7…奇數行編輯命令:
-d :刪除模式空間匹配的行
-p :顯示模式空間中的內容
a \text:在行的后面追加文本,支持使用\n實現多行追加。
i \text:在行的前面插入文本,支持使用\n實現多行插入
c \text:替換行為單行或多行文本
w /path/to/somefile:保存模式匹配的行至指定文件
r /path/from/somefile:讀取指定文件的文本模式空間中匹配到的行后
= :為模式空間中的行打印行號
! :模式空間中匹配行取反處理
s / / / :查找替換,支持使用別的分隔符,s@ @ @,s # # # 這樣的。 替換的標記 :g :行內全局替換p :顯示替換成功的行 w /path/tosomefile :將替換成功的行保存至文件中。
——————————————————————————————–
sed 基礎練習: # 對于文件的操作可以先使用cat查看一下文件中的內容,以便對sed顯示后作為對比,觀察結果。
1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的
空白字符
?
2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空
白字符的行的行首的#和空白字符
?
3、在/etc/passwd每一行行首增加#號
?
4、在/etc/fstab文件中不以#開頭的行的行首增加#號
?
5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名
?
6、利用sed 取出ifconfig命令中本機的IPv4地址
?
原創文章,作者:zhong,如若轉載,請注明出處:http://www.www58058.com/32056
文章對sed的常見用法有了一個完整的總結,有理論也有自己的操作,可以嘗試著用圖來解釋sed的工作原理,這樣會看起來更清晰哦