如果使用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. 【碳硫磷模拟赛】消失的+和* (树形DP)

    好久没做过这么恶心的DP题了 题面 题面很简单,有一个计算式,由+号.*号.括号和小于10的正整数组成,现在所有的+和*(由于属于违禁词而)都被-号给和谐掉了,现在要求所有可能的原计算式的结果之和. ...

  2. 一 策略模式 来自CBF4LIFE 的设计模式

    刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子的. 先说这个场景中 ...

  3. 从零教你使用MindStudio进行Pytorch离线推理全流程

    摘要:MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,该IDE上功能很多,涵盖面广,可以进行包括网络模型训练.移植.应用开发.推理运行及自定义算子开发等多种任务. 本 ...

  4. Windows平台RTMP/RTSP播放器实现实时音量调节

    为什么要做实时音量调节 RTMP或RTSP直播播放音量调节,主要用于多实例(多窗口)播放场景下,比如同时播放4路RTMP或RTSP流,如果音频全部打开,几路audio同时打开,可能会影响用户体验,我们 ...

  5. 【PMP学习笔记】第5章 项目范围管理

    一.规范管理的内涵 项目范围管理:包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程. 项目范围:为交付具有规定特性与功能的产品.服务或成果而必须完成的工作. 预测型:开始时定义可交付成果, ...

  6. ClangFormat配置备份

    { # 语言 Language: Cpp, # 水平对齐表达式的操作数 AlignOperands: true, # 不对包含头文件进行排序 SortIncludes: false, # 对齐注释 A ...

  7. 华南理工大学 Python第7章课后小测-1

    1.(单选)以下程序对字典进行排序,按字典键值从小到大排序,空白处的代码是(  ): dt={'b':6, 'c':2, 'a':4} s=sorted(dt.items(),key=_____) p ...

  8. kindeditor获取html内容之终极大法

    请允许我哔哔两句,真是难受啊,有问题去百度,结果百了一堆乱七八糟的内容,有头没尾,有尾没头的,搞得我晕头转向,现在把kindeditor获取HTML的终极打法无偿分享出来,这可是我配置查找了一下午的成 ...

  9. 我也是一个“翻译家”——关于“robust”

    每次看到"鲁棒性",总是不知道是什么意思,一度怀疑自己是不是中国人,是不是说汉语.每次都要查英汉字典,然后一次次看到: robust(adj.精力充沛的; 坚定的; 粗野的,粗鲁的 ...

  10. Traefik 2.0 暴露 Redis(TCP) 服务

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484452&idx=1&sn=0a17b907 ...