您好,登錄后才能下訂單哦!
sed命令作為一種流編輯器,以行為單位對一個或多個文件進行編輯,在sed處理文本時,會將文本放到一個模式空間當中,如果當前行能夠匹配sed命令所給出的PATTERN則用命令進行處理,如果不能匹配則默認情況下標準輸出;文件內容默認情況下不會改變;
sed命令:
sed [OPTION]...‘script’ [input-file]...
常用選項:
-n:安靜模式,默認不匹配的行不輸出到屏幕上;
-e script:多條件輸出,一個e選項可以配合一個script;
-i:將修改的內容直接寫進原文件;
-r:支持擴展的正則表達式;
script由兩部分組成:Address與Command兩者之間不能有空格存在;即AddressCommand;
Address:
1.當地值為空時則表示對當前所有文件進行操作;
2.單地址,指定行號num時,只對當前行進行操作,或者/PATTERN/指能夠匹配該模式的第一行,對該行進行操作;
3.地址范圍:
①addr1,addr2:從addr1開始到addr2結束的中間所有行,包括addr1和addr2;
②first~step:由標記first開始到step為止;
③add1,+N:由add1行開始,并計算向后N行;
④addr1,~N:從addr1開始,包括addr1所在行,向后計算addr1*N行;
例如:2,~5相當于2,2*5
⑤/PATTERN1/,/PATTERN2/
從被pattern1匹配的第一行開始計算,一直到被pattern2匹配的第一行結束;
Command:
=:先是被模式匹配行的行號;
a \test:在所匹配行的下一行添加test文本,支持使用\n選項;
i \test:在所匹配行的上一行添加test文本,支持使用\n選項;
c \test:將所匹配行用test進行替換,支持使用\n選項;
d:將在模式空間中匹配的行刪除,不在顯示輸出,d選項通常不搭配-n選項;
p:將在模式空間匹配的行輸出,p選項通常搭配-n選項;
w filepath:被能夠匹配的行另存到一個文件里去;
r filepath:將filepath中的內容追加到模式空間中被模式匹配的行之后;
!COMMAND:在模式空間中匹配的行不輸出,不匹配的行輸出;
s///:查找替換,“/”可以隨意分配三個一模一樣的符號,視情況而定;
s/pattern/text/[control]
pattern:計劃查找并替換內容;
text:要替換的結果
control:如何進行替換;
g:行內全部替換;
p:顯示替換成功的行;
如
s@/etc/fstab@/etc/mtab@:將字符/etc/fstab替換為/etc/mtab;
sed命令示范:
加-n與不加-n:采用指定單地址的方式
-e:
-r:取出當前路徑的基名,用基民替換當前路徑
-i:將修改寫入文件;
采用多地址方式:add1,add2
add1,+N
/PATTERN/,/PATTERN/匹配:
p:將在模式空間匹配的行輸出;加-n與不加-n;
d:刪除模式空間匹配的行;d選項的使用不加-n;
w file:將模式匹配的內容保存到另一個文件當中;
s///:查找替換,將文件中開頭為#且后面有空格的匹配字符刪去;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。