我有一个文件 (catalina.properties) 包含特定行:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar"
在另一个环境中它看起来像这样:
common.loader=
我需要一个在等号右侧附加一个额外部分的命令,并且在这两种情况下都有效,所以结果将是:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.base}/extra/part.jar"
或者在其他情况下:
common.loader="${catalina.base}/extra/part.jar"
最佳答案
sed解决方案:
示例测试输入文件testfile
:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar"
common.loader=
"ddd""sdsd"
sed 's~common\.loader=.*~&,"${catalina.base}/extra/part.jar"~; s/=,/=/' testfile
输出:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.base}/extra/part.jar"
common.loader="${catalina.base}/extra/part.jar"
"ddd""sdsd"
关于linux - 如何使用 shell 脚本追加到特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45690384/