sed

技术文章 8个月前 完美者
1,717 0

标签:echo   conf   ifconf   config   行号   ofo   sysconf   启动   入行   

sed
选择行号进行处理
1~2,奇数行
2~2,偶数行
#p对第几行进行打印

参数:
    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

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,&保留匹配到的原字符并添加字符

取基名
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‘

sed高级用法
分为模式空间和保持空间,利用此空间,可以将模式空间的数据临时保存至保持空间,从而实现后续处理
参数详情:
P打印模式空间的开端至\n内容,并追加到默认输出之前
h把模式空间的内容覆盖至保持空间
H把模式空间的内容追加至保持空间
g从保持空间取出数据覆盖至模式空间
G从保持空间取出数据追加至模式空间
X把模式空间的内容与保持空间的内容进行互换
n读取匹配到的行的下一行覆盖至模式空间
N读取匹配到的行的下一行追加至模式空间
d删除模式空间的行
D如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间的重新启动循环,如果模式空间不包含换行符,则会像d命令一发出新循环

    eg:seq 10|sed –n ‘n:p’  

sed

标签:echo   conf   ifconf   config   行号   ofo   sysconf   启动   入行   

原文地址:https://blog.51cto.com/13434656/2519181

版权声明:完美者 发表于 2020-08-13 12:02:45。
转载请注明:sed | 完美导航

暂无评论

暂无评论...