您好,登錄后才能下訂單哦!
sed命令是流編輯器。
工作流程是:每次將相應的行==》模式空間(內存中)==》模式匹配在處理==》將模式空間里的內容輸出到屏幕。
注:sed命令默認不處理原數據,而是處理原數據的副本。
用法
格式:sed ‘AddressCommand’ file
對指定文件中符合Address(地址篩選的行)進行Command(命令處理)
Address支持的用法:
1,起始行,結束行。例‘1,,100’(1到100行)
2,/正則匹配/ 支持正則模式匹配。里‘/^root/’(以root為行首的行)
3,/正則匹配1/,/正則匹配2/ 表示被模1式匹配到的行開始到被模式2匹配到的行
4,行號 精確匹配到某行,$表示最后一行。例‘1’(第一行)
5,起始行,+n 從起始行開始,到之后的N行
Command用法:
d:刪除符合條件的行。 例 sed '1,2d' /etc/passwd(刪除/etc/passwd中的第一到第二行) sed '/^root/d' /etc/passwd(刪除/etc/passwd中root為行首的行) sed '/^\//d' /etc/passwd(刪除etc/passwd中/開頭的行,\為轉意) p:顯示符合條件的行。例 sed '/^\//p' /etc/passwd(顯示etc/passwd中/開頭的行)
a(apend) /string:在指定的行后追加字符串string新行,\n表示換行
i(insert) /string:在指定的前插入字符串string新行,\n表示換行
r file:將指定的文件的內容添加至符合條件的行處
w file:將指定的范圍內的內容另存(會保存)到指定的文件中
s 查找并替換:將匹配到的內容進行替換
用法 sed 's/查找內容(支持正則)/替換內容(字符串,不支持正則)/修飾符'file 。在每行中默認只替換在該行中第一次匹配到的內容。
修飾符:g 全局替換。i 忽略大小寫。
注:在s命令中,只要三個分割符一樣,大部分符號都可以作為分隔符,這樣可以在匹配沖突時換分隔符避免使用轉移符
例:sed 's#\(l..e\)#\1r#g' 文件名。或 sed 's#l..e#$r#g' 文件名
$:為引用模式匹配的所有內容。
$與后向引用的差別:只引用匹配內容中的一部分內容是,只能用后向引用。
例: sed 's#l\(..e\)#L\1#g' 文件名
sed命令選項:
-h:禁默模式,不在顯示模式空間的內容
-i:直接修改原文件
-e:同時執行多個腳本 -e 地址命令 -e 地址命令 ...
-f 指定文件:sed -f /path/scripts file 表示腳本里的內容出來文件
-r:支持擴展正則
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。