sed命令整理

sed 基本用法
sed :行编辑器   默认不编辑原文件,仅对模式空间中的数据做处理,处理结束后,将模式空间打印至屏幕;
vi :全屏编辑器

sed  [option]  'AddressCommand'  file

    -n:静默模式   不显示模式空间内的内容 ,只显示符合条件的行
    -i:直接修改原文件
    -e script -e SCRIPT:可以同时执行多个脚本
    -f /PATH/TO/SED_SCRIPT/
        sed -f /path/to/scripts file
    -r:表示使用扩展正则表达式
Address:
1.Startline,Endline  (1,100)
  $ 最后一行
2./RegExt/正则表达式 如:/^root/
3./pattern1/,/pattern2/第一次被模式1匹配到的行开始,至第二次被模式2匹配到的行结束,这中间的所有行
4.LineNumber  指定的行
5.StartLine,+N  从startline开始,向后的N行
Command:
    d:删除符合条件的行
    p:显示符合条件的行  打印命令
    a \ string:在指定行后面追加新行,内容为string
        \n:可以用于换行
    i \ string:在指定行前面追加新行,内容为string  
    r file:将指定的文件的内容添加至符合条件的行处
    w file:将地址指定的范围内的行另存至指定的文件中
    s/pattern/string/修饰符:查找并替换 默认只替换每行中第一次被模式匹配到的字符串
        加修饰符
        g:全局替换
        i:查找时忽略字符大小写
    s///: s###: s@@@ 三个符号一致就行
        \(\), \1, \2
    &:引用模式匹配到的整个字符串

实例:
sed '/^#/d' /etc/fstab        删除注释行
sed  -n '/^\//p' /etc/fstab   只显示以/开头的行
sed   '/^\//a \# hello world ' /etc/fstab  在以/开头的行追加一行“#hello world
sed   '/^\//a \# hello world\n\# hello linux' /etc/fstab  在以/开头的行追加两行“#hello world
sed '2r /etc/issue' /etc/fstab  在第二行后追加/etc/issue文件内容
sed '$r /etc/issue' /etc/fstab  在最后行后追加/etc/issue文件内容
sed -n '/oot/w /tmp/oot.txt' /etc/fstab  将文件中含'oot'的行保存到/tmp/oot.txt文件
sed 's/oot/OOT/' /etc/fstab  'oot'替换成 'OOT'
sed 's/^\//#/' /etc/fstab          将以/开头的/换成'#'
history |sed 's#[[:space:]]##g'     删除每行所有的空格
history |sed 's#^[[:space:]]##g'   删除行首的一个空格
history |sed 's#^[[:space:]]*##g'  删除行首的一个或多个空格
history |sed 's#^[[:space:]]*##g'|cut -d' ' -f1 只显示第一列

1.删除/etc/grub.conf 文件中行首的空白符
sed 's@^[[:space:]]*@@g' /etc/grub.conf
2.替换/etc/inittab    文件中"id:3:initdefault:"一行中的数字为5
sed '$s/3/5/' /etc/inittab
sed 's/id:3:initdefault:/id:5:initdefault:/g' /etc/inittab
3.删除/etc/inittab文件中的空白行
sed '/^$/d' /etc/inittab
4.删除/etc/inittab文件中开头的#号
sed 's@^#@@g' /etc/inittab
sed '/^#/d' /etc/inittab  删除文件中的注释行
5.删除某文件中开头的#号,但要求#号后面必须有空白字符
sed -r 's@^#[[:space:]]+@@g' /etc/inittab  必须用+不能用*
6.删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#

sed -r 's@^[[:space:]]+#@@g' /etc/inittab 
7.删除空白行以及注释项
cat zabbix_agentd.conf |grep -v "#"|sed '/^$/d'

centos7 init 5 以root用户登陆
sed -i '4,5 d ' custom.conf  #删除第4、第5行
sed -i "3a AutomaticLoginEnable=True \nAutomaticLogin=root" custom.conf  #在第3行后添加两行
sed -i "3c peng" custom.conf #将第3行内容替换成字符串
cat custom.conf
sed -i '/^$/d' data.txt  #删除空白行
cat /usr/local/zabbix_agent/etc/zabbix_agentd.conf | grep -v '#' |grep -v '^$'   #去掉注释,去掉空白行
sed -i '/daemon/G' custom.conf #在daemon后面加入空白行
zookeeper配置文件修改
sed -i '12d' /opt/zookeeper/conf/zoo.cfg
sed -i '11a dataDir=/opt/zookeeper/data' /opt/zookeeper/conf/zoo.cfg
sed -i '12a dataLogDir=/opt/zookeeper/logs' /opt/zookeeper/conf/zoo.cfg
sed -i '26c autopurge.snapRetainCount=500' /opt/zookeeper/conf/zoo.cfg
sed -i '29c autopurge.purgeInterval=24' /opt/zookeeper/conf/zoo.cfg
echo "server.1=172.16.253.57:2888:3888" >> /opt/zookeeper/conf/zoo.cfg
echo "server.2=172.16.253.14:2888:3888" >> /opt/zookeeper/conf/zoo.cfg
echo "server.3=172.16.253.62:2888:3888" >> /opt/zookeeper/conf/zoo.cfg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值