gpt4 book ai didi

linux - 如何使用 sed 替换文本文件中的文件名

转载 作者:行者123 更新时间:2023-12-02 18:04:02 25 4
gpt4 key购买 nike

我有一个文件:dynamicclaspath.cfg

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

我想将任何出现的 log4j-core* 替换为 log4j-core-2.17.1.jar

我尝试过这个,但我知道我缺少一个正则表达式:

sed -i '/^log4j-core/ s/[-]* /log4j-core-2.17.1.jar/'

最佳答案

根据您显示的示例,请尝试执行以下 sed 程序。使用 -E 选项和 sed 来启用 ERE(扩展正则表达式)。在主程序中使用替换选项来执行替换。使用 sed 的功能来使用正则表达式并将匹配的值存储到临时缓冲区(捕获组)中。匹配直到最后一次出现/,然后匹配log4j-core直到jar最后出现一个值。根据OP的要求,用第一个捕获组值替换它(直到最后一次出现/),然后是log4j的新值。

sed -E 's/(^.*\/)log4j-core-.*\.jar$/\1log4j-core-2.17.1.jar/' Input_file

关于linux - 如何使用 sed 替换文本文件中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73718168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com