【发布时间】:2019-05-19 19:40:59
【问题描述】:
我正在尝试使用 sh 文件中的 sed 替换字符串。
问题:'connection' 后有空行,并且它的'-url' 字符串出现在下一行,此外还需要替换端口号和密码字符串。使用 sed 我无法在连接后删除空白行。
原字符串:
connection
-url>jdbc:oracle:thin:@10.10.10.11\:1551/password1 /connection-url
替换为:
connection-url>jdbc:oracle:thin:@10.10.10.90\:1555/password2 /connection-url
我尝试了以下不起作用的命令:
sed -i 's/connection[\t ]+/,/g' sed-script.sh
sed 's/\connection*-\connection*/-/g' sed-script.sh
【问题讨论】:
-
这看起来一点也不像 XML。请edit 显示您尝试的
sed命令的问题,并解释它是如何失败的。如果这真的是 XML,你为什么不使用像xmlstarlet这样的 XML 工具? -
@tripleee:它是 shell 文件,更新了我尝试在连接后替换空白/空格的命令
-
顺便说一句,您的
sed可能不理解\t。但正如我在回答中所概述的那样,问题比这更根本。 -
您的示例显示
password1被替换为password2以及“连接”和“-url”之间的空格被删除。如果这是您问题的一部分,请在散文讨论中也包含对此的描述。 -
IP 地址也在输入和输出之间变化。修复您的示例或更新文本以阐明这些更改的标准。
标签: string awk sed str-replace