You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下使用sed批量替换子目录文件字符串报错的解决方法

问题解决:批量替换目录下文件中的指定字符串

报错原因

你用/作为sed替换命令的分隔符,但目标字符串gs://common/jars/sap_njdbc_2.12.jar本身包含多个/,sed会把第一个/后的内容误判为命令的一部分,导致s命令格式不完整,触发“unterminated `s' command”错误。

正确命令

核心思路是更换sed的分隔符,选择目标字符串中不存在的字符(比如#、@),同时用双引号包裹命令以解析环境变量:

Linux 环境

find ./ -type f -exec sed -i "s#gs://common/jars/sap_njdbc_2.12.jar#${path_to_jar_file}#g" {} \;

macOS 环境(sed语法略有差异)

find ./ -type f -exec sed -i '' "s#gs://common/jars/sap_njdbc_2.12.jar#${path_to_jar_file}#g" {} \;

额外说明

  • 如果需要保留原文件备份,可以在-i后添加备份后缀,比如-i.bak,执行后会生成带.bak后缀的原文件副本
  • 若${path_to_jar_file}变量中包含特殊字符(如&、\),需要提前对这些字符进行转义,避免sed解析错误

内容的提问来源于stack exchange,提问作者nmr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:24:59