sed
選擇行號進行處理
1~2,奇數行
2~2,偶數行
#p對第幾行進行打印linux
參數: p打印,d刪除,I忽略大小寫,a追加,i以前添加,c替換,!取反 -n關閉自動打印 ifconfig | sed -n '2,4p' -i 修改原文 -i.bak修改文件並備份
eg:sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
sed -n '1~2!p' /etc/sysconfig/selinux ide
sed搜索替代br/>格式:s///g,s###g,s@@@g
g全文搜索,p打印,w保存到文件,I/i忽略大小寫
eg:sed -n ‘^/r..t/s/r..t/&test/g’ /etc/passwd
將匹配的r..t替換爲r..ttest,&保留匹配到的原字符並添加字符code
取基名
echo /etc/sysconfig/network-scripts | sed –En ‘s#(.)\/([^/]+\/?)$#\1#gp’
取先後綴
echo a.b.c.bz | sed –En ‘s/(.).([^.]+)$//gp’
取IP地址
ifconfig | sed -En '2s/[^0-9]+([0-9.]+)./\1/gp'
取磁盤利用率
df -mh | sed -En '/^\/dev\/sd/s#(\/dev\/sd[[:alnum:]]+).([0-9]+%).*#\1 \2#gp'ip
sed高級用法
分爲模式空間和保持空間,利用此空間,能夠將模式空間的數據臨時保存至保持空間,從而實現後續處理
參數詳情:
P打印模式空間的開端至\n內容,並追加到默認輸出以前
h把模式空間的內容覆蓋至保持空間
H把模式空間的內容追加至保持空間
g從保持空間取出數據覆蓋至模式空間
G從保持空間取出數據追加至模式空間
X把模式空間的內容與保持空間的內容進行互換
n讀取匹配到的行的下一行覆蓋至模式空間
N讀取匹配到的行的下一行追加至模式空間
d刪除模式空間的行
D若是模式空間包含換行符,則刪除直到第一個換行符的模式空間中的文本,並不會讀取新的輸入行,而使用合成的模式空間的從新啓動循環,若是模式空間不包含換行符,則會像d命令一發出新循環get
eg:seq 10|sed –n ‘n:p’