shell脚本中sed指令修改指定配置文件的内容

您所在的位置:网站首页 shell读取xml shell脚本中sed指令修改指定配置文件的内容

shell脚本中sed指令修改指定配置文件的内容

#shell脚本中sed指令修改指定配置文件的内容| 来源: 网络整理| 查看: 265

一、前言 当我们在进行自动化shell脚本编辑的时候,有时候需要进行编辑或者修改相应的配置文件。 那么sed是一个很不错的选择

二、sed介绍 sed是Linux下一款功能强大的非交互流式文本编辑器。 对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,适合大文件之类的编辑。

1、sed命令格式:

sed [参数] "command" 文件所在路径

2、常见参数:

-n∶ 不加n时,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e∶ 直接在指令列模式上进行 sed 的动作编辑; -f∶ 直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶ sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法) -i∶ 直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改

3、常用命令:

a: 新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c: 取代,c的后面可以接字串,这些字串可以取代 n1,n2之间的行! d: 删除,因为是删除啊,所以d后面通常不接任何咚咚; i: 插入,i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p: 打印,打印出匹配的内容,通常与-n选项和用 s: 取代,可以直接进行取代的工作哩!通常这个s的动作可以搭配正规表示法!

4、举例

# 删除某行 sed '1d' test.txt #删除第一行 sed '$d' test.txt #删除最后一行 sed '1,2d' test.txt #删除第一行到第二行 sed '2,$d' test.txt #删除第二行到最后一行 #显示某行 sed -n '1p' test #显示第一行 sed -n '$p' test #显示最后一行 #替换一行中的某部分 #格式:sed 's/要替换的字符串/新的字符串/g'(要替换的字符串可以用正则表达式) sed 's/ru/bird/g' #替换ru为bird sed 's/ru//g' test #替换ru为空 #插入 sed -i '$a bye' test #在文件test1中最后一行直接输入"bye" sed -i '1i\a' test #在文件test1中第一行前插入一行"aaa" #如果要添加一行,原来该行为空行 sed -i '36s/^/ client_max_body_size 50m;/g' nginx.conf

5、shell中常见用例 注:在shell中,可以采用先定义变量位置。 举例如下: 1、匹配对应的PIDFILE 和 BASEDIR 位置 并进行修改替换。 当我们在编写一键安装自动化脚本时经常用到

#!/bin/bash AGENT_CONF=/usr/local/zabbix/misc/init.d/fedora/core/zabbix_agentd sed -i -e 's/^PIDFILE=.*/PIDFILE=/usr/local/zabbix/$BINARY_NAME.pid' ${AGENT_CONF} sed -i -e 's/^BASEDIR=.*/BASEDIR=/usr/local/zabbix/' ${AGENT_CONF} sleep 5

2、sed命令替换目录 假设将test.conf中的server和host进行匹配,并且进行替换为目录 使用格式:

sed -i -e "s:匹配参数=.*:匹配参数=替换后的内容:g" 对应的文件路径

1、假设test.sh脚本

#!/bin/bash TEST_CONF=/home/steve/test.conf sed -i -e "s:server=.*:server=/opt/zabbix:g" ${TEST_CONF} sed -i -e "s:host=.*:host=/etc/passwd:g" ${TEST_CONF} echo "test success!"

2、test.conf文件

# vim test.conf server:111.111.111.111 host:222.222.222.222

3、然后执行sh test.sh

sh test.sh # test success~

4、然后查看test.conf 发现已经成功 在这里插入图片描述

OK~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3