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’