本文介绍: sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器。sed 有许多很好的特性。首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍。其次,因为 sed 是一种流编辑器,所以,它可以对如管道这样的标准输入中接收的数据进行编辑。因此,无须将要编辑的数据存储在磁盘上的文件中。因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易。sed 主要是用来将数据进行选取、替换、删除、新増的命令。
需求背景
简要说明下流程
原来的流程: 每次新增连接服务,都要进行命令行操作–修改配置文件A,执行启动脚本 。
全部需要公司运维人员帮忙操作,且每次新增都需要人工重复操作
现在的流程:
1.提前一次性配置好环境变量文件B中的必要参数
2.后续就交给程序来操作
3.根据页面输入的信息替换shell模版C内容;
4.读取环境变量B参数替换shell模版C内容;
5.shell模版文件C替换完参数开始执行替换文件A的命令
可以发现这里需要大量替换shell文件内容的操作,如果是设置好的模板内容,其实容易替换操作(详见:《java:自定义变量加载到系统变量后替换shell模版并执行shell》),但是对于特定内容的替换,还是sed命令会容易些。
sed命令介绍
sed命令实操
查
查-某行的数据
查-连续某几行的数据
查-某行开始到最后一行的数据
查-包括关键字的所有行数据
查-包括特殊关键字如$所在所有行
删(不改变原文件)
删-某行数据
增(不改变原文件)
增-某行后增加数据
行替换(不改变原文件)
替换-某行数据
字符串替换(不改变原文件)
字符串替换-某行的部分字符串
字符串替换(改变原文件)
字符串替换-字符串
字符串替换-匹配字符串全部替换
字符串替换-每行第一个匹配的字符串替换
字符串替换-只替换第一个匹配的字符串
字符串替换-只替换第一行所有匹配的字符串
字符串替换-每次替换两行且只替换第一个匹配的字符串
文件修改
直接修改原文件
修改文件内容,备份并重命名原文件(原文件名为修改后的文件内容)
问题
1. 报错–mac上遇到的错误sed command a expects followed by text
原因
解决方法
2. 报错-sed throws ‘bad flag in substitute command’
解决方法
3. Sed命令中含有转义字符的问题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。