gpt4 book ai didi

linux - 如何在匹配模式后立即将字符串路径插入文件行的中间?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:08 26 4
gpt4 key购买 nike

我正在尝试将存储在变量中的字符串路径作为属性值的第一部分插入到 xml 文件中。

xmlfile 是 Tomcat 的 context.xml 文件,使用格式

<Context reloadable="true" docBase="application.war"> 
...
</Context>

要部署的 war 文件的绝对位置路径是

$WKSP_APATH="/location/on/server

$WKSP PATH 应该插入如下

<Context reloadable="true" docBase="/location/on/server/application.war">
...
</Context>

我试图查找信息,但大多数资源都集中在整行插入上。这是为我的脚本添加的最后一行。

对于上下文,下面给出了执行行的位置,作为它嵌入的脚本的摘录

find /$SEARCH_PATH -name "*.xml" -type f|while read fname; do
CONTEXT_FILE=${fname##*/}
cp -rf "/$SEARCH_PATH/$CONTEXT_FILE"
"/$COPY_LOCATION/${PROJECT_CODENAME}-$CONTEXT_FILE"

echo "Copied $CONTEXT_FILE to:
$COPY_LOCATION/$PROJECT_CODENAME-$CONTEXT_FILE for deployment"

#do insert new path on local server here?

done

非常感谢

最佳答案

假设:

  • 您冒着风险使用正则表达式而不是适当的工具来解析 xml 文件。
  • FILE 变量包含要处理的 xml 文件名。
  • WKSP_PATH 变量包含您要作为前缀插入到 docBase 属性值中的绝对位置。

尝试:

#!/bin/bash
WKSP_PATH="/location/on/server"
sed -i "s@docBase=\"@docBase=\"$WKSP_PATH/@" "$FILE"

检查结果:

cat "$FILE"
<Context reloadable="true" docBase="/location/on/server/application.war">
...
</Context>

关于linux - 如何在匹配模式后立即将字符串路径插入文件行的中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com