本人常用的sed命令用法

  如果使用sed命令修改文件,需要为sed命令指定【-i】选项(i,insert表示插入指令),下面是本人常用到的几种场景:

1. 在文件最后一行的下一行添加配置

  如:在配置文件/etc/profile最后一行添加:export FAP_HOME=/opt/FAP_HOME

[root@ZWZF-CWY-LZY-12 ~]# sed -i '$a export FAP_HOME=/opt/FAP_HOME' /etc/profile           
# $表示最后一行,a表示下一行

[root@ZWZF-CWY-LZY-12 ~]# sed -i.bak '$a export FAP_HOME=/opt/FAP_HOME' /etc/profile         
# i.bak 把修改内容保存到profile,同时会以profile.bak文件备份原来未修改文件内容,以确保原始文件内容安全性,防止错误操作而无法恢复原来内容

 2. 替换文件中的某个字段

  如:将文件file.txt中的db.url=jdbc:oracle:thin:@10.10.66.67:1521:orcl替换为db.url=jdbc:oracle:thin:@10.10.66.68:1522:ufgovdb1

[root@ZWZF-CWY-LZY-12 ~]# sed -i 's/db.url=jdbc:oracle:thin:@10.10.66.67:1521:orcl/db.url=jdbc:oracle:thin:@10.10.66.68:1522:ufgovdb1/g' file.txt
# s表示替换;g表示全局匹配,没有g则只有第一次匹配被替换
#'/'分隔符有许多替换方案,如果规则表达式或替换字符串中有许多斜杠,则可以通过在's'之后指定一个不同的字符来更改分隔符。示例:sed -i 's#/usr/local#/usr#g' file.txt。此时是替换分隔符,sed会将/usr/local替换为/usr

  替换前后对比

  3. 替换文件中某行的某个字段

  如:文件/opt/cwy8.32/config/application.properties的第37、47行均存在#db.dialect=org.hibernate.dialect.Oracle10gDialect

  将文件application.properties的第47行的#db.dialect=org.hibernate.dialect.Oracle10gDialect替换为db.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

[root@ZWZF-CWY-LZY-12 ~]# sed -i '47s/#db.dialect=org.hibernate.dialect.Oracle10gDialect/db.dialect=org.hibernate.dialect.MySQL5InnoDBDialect/g' /opt/cwy8.32/config/application.properties
# 47代表文件第47行

  修改前后对比

 

4. 在文件的某行的下一行添加配置

  如:在文件redis.conf中1024行的下一行追加配置:maxmemory-policy volatile-lru

sed -i '1024a maxmemory-policy volatile-lru' /opt/redis-cluster/redis03/redis.conf
#a append,表示追加指令
#1024是行号

拓展

sed -i 命令详解: https://blog.csdn.net/qq_42767455/article/details/104180726

sed入门详解教程: https://www.cnblogs.com/liwei0526vip/p/5644163.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值