此问题在此处已有答案:
Using different delimiters in sed commands and range addresses(3个答案)
4天前关闭。
我正在尝试用目录的子目录中的文件中的另一个字符串替换一个字符串。
下面是字符串值
old_string = gs://common/jars/sap_njdbc_2.12.jar
new_string = ${path_to_jar_file}
字符串
我已经试过了
find ./ -type f -exec sed -i 's/gs://common/jars/sap_njdbc_2.12.jar/${path_to_jar_file}/g' {} \;
型
我得到一个错误如下
sed: -e expression #1, char 3: unterminated `s' command
型
我如何获得正确的结果
2条答案
按热度按时间mbzjlibv1#
将命令更改为如下所示。会成功的
字符串
因为你在你的模式中使用了
/
,所以它不会工作。因此,将/
替换为其他一些分隔符,如|
。x4shl7ld2#
有几个问题我可以从 bat 身上看到:
${path_to_jar_file}
包含在单引号中,您必须使用"
双引号。试试这个:
find ./ -type f -exec sed -i "s/gs:\/\/common\/jars\/sap_njdbc_2.12.jar/\$path_to_jar_file/g" {} \;
个当然,如果你想使用文字
${path_to_jar_file}
,因为你的问题有点不清楚。如果你觉得可行的话告诉我。