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

如何使用sed替换文本文件中log4j-core开头的文件名

正确的sed替换命令

要实现将dynamicclaspath.cfg中所有log4j-core*格式的文件名替换为log4j-core-2.17.1.jar,可以使用以下命令:

sed -i 's/log4j-core[^/]*\.jar/log4j-core-2.17.1.jar/g' dynamicclaspath.cfg

命令解释:

  • -i:直接修改原文件(如果是BSD环境下的sed,需写成-i '')
  • s/原模式/替换内容/g:全局替换(g标志确保一行内所有匹配项都被替换)
  • log4j-core[^/]*\.jar:精准匹配目标文件名:
    • log4j-core:锁定目标字符串的开头
    • [^/]*:匹配任意非/的字符,避免跨目录误匹配
    • \.jar:匹配jar文件后缀(.在正则中是特殊字符,需转义)

原命令的问题:

  1. 行匹配条件/^log4j-core/错误:你的文件行均以VENDOR_JAR=开头,该条件无法匹配任何行
  2. 替换正则[-]*完全不符合需求,没有正确定位要替换的文件名部分
  3. 缺少全局替换标志g,且未指定要操作的目标文件名

执行正确命令后,文件内容会变为:

VENDOR_JAR=/clear-as-1-d/apps/sterling/jar/struts/2_5_18/1_0_0/log4j-core-2.17.1.jar
VENDOR_JAR=/clear-as-1-d/apps/sterling/jar/log4j/2_17_1/log4j-core-2.17.1.jar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:40:54