文本处理工具—sed
1.sed是什么?
sed : stream editor 行编辑器
大多数情况被用来修改配置文件,把处理的文件放到内存里面,并且开辟空间,这个空间就叫做模式空间,它会对模式空间的内容进行逐行阅读,当符合需要的条件,就会把符合条件的行取出来并且显示,不符合的行就不予理睬。
命令格式:
sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件
2.对字符的处理
p ##显示
sed -n 5p passwd ##显示第五行
sed -n 3,5p passwd ##显示3到5行
sed -ne "3p;5p passwd ##显示3和5行 e表示多条策略
sed -ne 1,5p passwd ##显示1-5行
sed -ne '5,$p' passwd ##显示5到最后一行
sed -n '/^#/p' passwd ##显示以#开头的行
d ##删除
sed 5d passwd ##删除第五行
sed '/^#/d' passwd ##把#开头的行删除
sed '/^bin/!d' passwd ##除了bin以外的行都删除 !表示条件反选
sed -e '5,$d' passwd ##从第五行一直删到最后
a ##添加
sed -e '$a hello world' passwd #在最后一行添加hello world
sed -e '$a hello\nworld' passwd #换行添加 hello world
sed -e '/^#/a hello world' passwd #以#开头的后面的行添加hello world
c ##替换
sed -e '/^#/c hello world' passwd #把以#开头的行替换成hello world
sed '5chello world' westos #把第五行替换成hello world
w ##把符合的行写到指定文件中
sed '/^#/w haha' passwd ##把passwd中#开头的行写入haha中
i ##插入
sed '5ihello westos' passwd #表示在passwd第五行中插入内容hello world
r ##整合文件
sed '5r haha' passwd #把文件haha的内容整合到passwd文件的第五行下面
2.sed 字符替换
sed 's/:/###/g' westos
sed 's/:/###/' westos
sed '1,5s/:/###/g' westos
sed '1s/:/###/g' westos
sed '1s/:/###/g;5s/:/###/g' westos
sed '/lp/,/shutdown/s/:/###/g' westos
sed 's/\//####/g' westos
sed 's@/@####@g' westos
sed 's@/@####@g' -i westos 把sed处理的内容保存到westos文件中