sed 命令追 查找[关键字] 并在该行附近修改文本
该文内容为项目部署过程,修改部署脚本时,遇到的问题总结。因工作电脑无法使用外网,本文只是简单记录结果,没有列举在linux环境实操图。
前言
本文使用到如下两篇文章的内容
sed 命令 查找[关键字] 并在该行附近修改文本
示例
#设置Java环境变量
#删除.bash_profile文件中 JAVA_HOME= 这一行
sed -i '/JAVA_HOME=/d' .bash_profile
# $:在.bash_profile文件末尾 详情查看正则表达式
# a:追加 详情查看sed命令
sed -i '$a\JAVA_HOME=/home/java/bin' .bash_profile
# 删除.bash_profile文件中 JAVA_HOME= 这一行 以及其后一行 共计两行
sed -i '/JAVA_HOME=/,+1d' .bash_profile
此处文部署应用设置环境变量使用的脚本,删除是为了能重复执行
#定义WAR_PATH
WAR_PATH='<Context path="/sys_name">'
# 在test.txt文件中找到add context行,在其上面增加 $WAR_PATH 变量定义的内容
sed -i '/add context/i '"$WAR_PATH"'' test.txt
# 在test.txt文件中找到<Context path=.* 行 替换为$WAR_PATH 变量定义内容
sed -i 's#<Context path=.*#'"$WAR_PATH"'#g' test.txt
‘“$WAR_PATH”’ 尝试多种方法 只有这样写才能把变量内容输出到要修改的文本中。
#单引号 双引号 $变量 双引号 单引号
'"$WAR_PATH"'