如果使用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

本人常用的sed命令用法的更多相关文章

  1. sed命令用法详解

    sed命令用法 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space) ...

  2. SED命令用法整理

    sed '/Started/'q  匹配到Started字符串则退出sed命令 sed '/Started/{/in/q}'  同时匹配到Started和in两个字符时则退出sed命令 ------- ...

  3. Linux sed命令用法

    概述 sed命令是一个面向字符流的非交互式编辑器,不允许用户与它进行交互操作.sed是以行为单位处理文本内容的.在shell中,可以批量修改文本内容. 用法 sed [选项] [动作] 选项与参数:- ...

  4. shell脚本基础——常用的sed命令举例

    一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串.移动.删除.与搜寻数据行等等动作.当然 , 一般交互式编辑器(如 vi.emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求 ...

  5. sed命令用法

    Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令.指定文件名,然后在屏幕上查 ...

  6. <三剑客> 老二:sed命令用法

    sed命令的用法: sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ...

  7. sed 命令用法

    Sed:对文件进行编辑操作,对象是行.操作后在屏幕输出结果.如果要直接修改则加-i命令-f filename: 执行某文件内的sed命令-n 只显示被修改的那一行 如文件test内容:Letyou a ...

  8. dockerfile编辑时常用的sed命令,用来修改配置文件。

    sed 替换部分文件内容 随着使用,会逐步更新. #替换整行sed '/mengqingbo/c lanqiuxiaozi="FALSE"' fileName #匹配行前加sed ...

  9. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

随机推荐

  1. PlayCover for mac-Mac 上全屏运行 iOS 应用程序

    前言 如何在Mac电脑运行ios应用呢?PlayCover for Mac一款彻底解放苹果电脑的iOS软件安装工具,无需付费,操作简单,可以安装ipa文件,可以通过鼠标.键盘和控制器 在Mac上全屏运 ...

  2. HOSMEL:一种面向中文的可热插拔模块化实体链接工具包

    HOSMEL: A Hot-Swappable Modularized Entity Linking Toolkit for Chinese ACL 2022 论文地址:https://aclanth ...

  3. Trigger Before 与 After 区别

    用户在使用trigger时,经常会面临before or after的选择问题.二者有什么区别?从字面理解,before trigger 是在触发操作完成之前完成,而after 是在触发操作完成之后完 ...

  4. React Native 入门 调试项目

    不管时用哪种语言,哪种框架,调试永远都是一个避不开的话题 为我们提供了远程调试的功能,而这个功能需要Chrome浏览器的配合. 1. 首先浏览器一定要安装好React Developer Tool 插 ...

  5. 凭借SpringBoot整合Neo4j,我理清了《雷神》中错综复杂的人物关系

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 虽然距离中秋放假还要熬过漫长的两天,不过也有个好消息,今天是<雷神4>上线Disney+流媒体的日子 ...

  6. 若依(RuoYi )权限管理设计

    前言 若依权限管理包含两个部分:菜单权限 和 数据权限.菜单权限控制着我们可以执行哪些操作.数据权限控制着我们可以看到哪些数据. 菜单是一个概括性名称,可以细分为目录.菜单和按钮,以若依自身为例: 目 ...

  7. 基于深度学习的文本分类案例:使用LSTM进行情绪分类

    Sentiment classification using LSTM 在这个笔记本中,我们将使用LSTM架构在电影评论数据集上训练一个模型来预测评论的情绪.首先,让我们看看什么是LSTM? LSTM ...

  8. 讲讲 tcp_tw_recycle,tcp_tw_reuse

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485332&idx=1&sn=59823ce1 ...

  9. 3.Ceph 基础篇 - RBD 块存储使用

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485253&idx=1&sn=24d9b06a ...

  10. Elastic:使用ElastAlert发送通知

    ElastAlert是一个简单的框架,用于从Elasticsearch中的数据中发出异常,尖峰或其他感兴趣模式的警报.我们可以在地址https://elastalert.readthedocs.io/ ...