本人常用的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
本人常用的sed命令用法的更多相关文章
- sed命令用法详解
sed命令用法 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space) ...
- SED命令用法整理
sed '/Started/'q 匹配到Started字符串则退出sed命令 sed '/Started/{/in/q}' 同时匹配到Started和in两个字符时则退出sed命令 ------- ...
- Linux sed命令用法
概述 sed命令是一个面向字符流的非交互式编辑器,不允许用户与它进行交互操作.sed是以行为单位处理文本内容的.在shell中,可以批量修改文本内容. 用法 sed [选项] [动作] 选项与参数:- ...
- shell脚本基础——常用的sed命令举例
一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串.移动.删除.与搜寻数据行等等动作.当然 , 一般交互式编辑器(如 vi.emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求 ...
- sed命令用法
Sed 简介 sed 是一种新型的,非交互式的编辑器.它能执行与编辑器 vi 和 ex 相同的编辑任务.sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令.指定文件名,然后在屏幕上查 ...
- <三剑客> 老二:sed命令用法
sed命令的用法: sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ...
- sed 命令用法
Sed:对文件进行编辑操作,对象是行.操作后在屏幕输出结果.如果要直接修改则加-i命令-f filename: 执行某文件内的sed命令-n 只显示被修改的那一行 如文件test内容:Letyou a ...
- dockerfile编辑时常用的sed命令,用来修改配置文件。
sed 替换部分文件内容 随着使用,会逐步更新. #替换整行sed '/mengqingbo/c lanqiuxiaozi="FALSE"' fileName #匹配行前加sed ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
随机推荐
- atcoder beginner contest 251(D-E)
Tasks - Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)\ D - At Most 3 (Contestant ...
- day01-GUI坦克大战01
JavaGUI-坦克大战 1.Java绘图坐标体系 坐标体系介绍:下图说明了一个Java坐标体系.坐标原点位于左上角,以像素为单位.在Java坐标体系中,第一个是x坐标,表示当前位置为水平方向,距离坐 ...
- KingbaseES R6 集群“双主”故障解决案例
实际工作中,可能会碰到集群脑裂的情况,在脑裂时,会出现双 primary情况.这时,需要用户介入,人工判断哪个节点的数据最新,减少数据丢失. 一.测试环境信息 操作系统: [kingbase@node ...
- KingbaseES 导入导出blob列数据
KingbaseES兼容了oracle的blob数据类型.通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据. 下面来验证一下各种数据存储在数据库中形式. 建表 create table ...
- Q准则涡识别方法
Q准则(Q Criterion)在涡识别中计算效率高,效果也不错,是一种常用的涡提取/识别方法. 了解Q准则需要从速度梯度张量入手,而速度梯度张量可以分解成两部分 \[\frac{\partial u ...
- Golang实现set
背景 Golang语言本身未实现set,但是实现了map golang的map是一种无序的键值对的集合,其中键是唯一的 而set是键的不重复的集合,因此可以用map来实现set Empty 由于map ...
- Containerd教程
文档是从B站有关视频上对应找到的,具体视频地址是:https://www.bilibili.com/video/BV1XL4y1F7QB?p=21&spm_id_from=333.880.my ...
- 采用docker方式安装ElastAlert,图形化配置告警规则----具体内容有删改,仅供查看
1.创建几个文件夹保存ElastAlert相关配置信息,用来挂载到容器中使用 2.编写核心配置,创建 ${ELASTALERT}/config/config.yaml用来存储核心配置: 3.Elast ...
- 第一章:模型层 - 5:模型的元数据Meta
模型的元数据,指的是"除了字段外的所有内容",例如排序方式.数据库表名.人类可读的单数或者复数名等等.所有的这些都是非必须的,甚至元数据本身对模型也是非必须的.但是,我要说但是,有 ...
- docker的cmd命令详解-前后台理解
CMD 指令的格式和 RUN 相似,也是两种格式: shell 格式:CMD <命令> exec 格式:CMD ["可执行文件", "参数1", & ...