gpt4 book ai didi

linux - sed 删除所有匹配项的一部分

转载 作者:太空狗 更新时间:2023-10-29 11:25:10 25 4
gpt4 key购买 nike

我有一个如下所示的文件“names.xml”:

    NAME="James"
NAME="Jack_DONE"
NAME="John_DONE"
NAME="Jimmy"

我想使用单个 SED 行命令查找所有出现的“NAME=”J,在“”中有“_DONE”,我想从找到的所有匹配项中仅删除“_DONE”。

所以结果应该是这样的:

    NAME="James"
NAME="Jack"
NAME="John"
NAME="Jimmy"

这是我正在使用的命令:

sed 's/^[^#]\(.*\)NAME="J\(.*\)_DONE"/\1"NAME=J\2"/' names.xml

我相信我能以更有效的方式做到这一点!非常感谢您的宝贵时间和协助。

最佳答案

使用 GNU sed:仅在包含 NAME="J 的行中搜索 _DONE 并替换为任何内容。

sed '/NAME="J/{s/_DONE//}' names.xml

输出:

    NAME="James"    NAME="Jack"    NAME="John"    NAME="Jimmy"

关于linux - sed 删除所有匹配项的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814182/

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