sed &echo学习
提示:sed修改文件通常被认为是比较危险的操作,请慎用。
案例1:
.sh脚本修改某配置文件xx.config,
xx.config内容包含:
[DEFAULT] Description=XXX [Service] Type=forking PIDFile=/run/newpid/newpid.pid [Install] WantedBy=xxx
期望修改后的结果:
[DEFAULT] Description=XXX [Service] Type=forking PIDFile=/var/log/newpid/newpid.pid [Install] WantedBy=xxx
需要修改[Service]段的PIDFile值
.sh脚本:
sed -i -e "/\[Service\]/,/^\[/{s/[#,\ ]*PIDFile[\ ]*=.*/PIDFile=\/var\/log\/newpid\/newpid.pid/};" ~/../xxx.config
包含一下要点:
- 匹配[Service]段;
- 匹配PIDFile字段;
- 替换新的值,在路径值包含的“/”用“\/”转义
案例2:创建并写入文件内容
echo:
#!/bin/sh
O_SID=goooooo
# 创建init.ora
echo > init.ora
echo "#Database Identification" >> init.ora
echo "db_domain=\"\"" >> init.ora
echo "db_name=${O_SID}" >> init.ora
echo >> init.ora
echo >> init.ora

浙公网安备 33010602011771号