如何用sed修改Docker镜像中Python模块mod.py指定行内容?
在Docker镜像中使用sed修改Python文件指定行
原代码行(第2357行)
raise ExchangeError(self.id + ' ' + errorText + '(#' + errorCode + ')')
方案1:保留self.id与errorCode
修改后代码:
raise ExchangeError(self.id + '(#' + errorCode + ')')
使用以下sed命令定位第2357行并替换目标片段:
# Debian/Ubuntu等GNU sed环境 sed -i "2357s/ + ' ' + errorText + '(#'/'(#'/" mod.py # Alpine等busybox sed环境(无需备份原文件) sed -i "2357s/ + ' ' + errorText + '(#'/'(#'/" mod.py # 如需备份原文件,可添加后缀(如.bak) sed -i.bak "2357s/ + ' ' + errorText + '(#'/'(#'/" mod.py
命令说明:精准匹配并剔除原行中冗余的' ' + errorText + 部分,保留self.id和errorCode的关联逻辑。
方案2:仅保留self.id
修改后代码:
raise ExchangeError(self.id)
使用以下sed命令截断self.id之后的所有内容:
# Debian/Ubuntu等GNU sed环境 sed -i "2357s/self.id.*/self.id)/" mod.py # Alpine等busybox sed环境 sed -i "2357s/self.id.*/self.id)/" mod.py # 如需备份原文件 sed -i.bak "2357s/self.id.*/self.id)/" mod.py
命令说明:直接将第2357行中self.id之后的所有字符替换为),简化调用语句。
内容的提问来源于stack exchange,提问作者Florent
相关产品推荐
相关产品推荐

