【问题标题】:Replace Specified String And All Subsequent Characters替换指定字符串和所有后续字符
【发布时间】:2017-03-05 10:10:38
【问题描述】:

我想用 Sed 替换所有字符之后包括一个指定的字符串如下所示:

关键字

#specific-keyword

输入

一些文本,其中包含#specific-keyword 以及随后的所有其他内容。

输出

一些文本,其中包含一个

我想出了这样的东西:

"Some text amongst which lies a #specific-keyword and everything else that follows." | sed "s/#specific-keyword*/ /g" 

但它只删除了特定的关键字,而不是后面的词。

【问题讨论】:

    标签: regex bash sed text-parsing


    【解决方案1】:

    我刚刚找到答案,我的正则表达式是错误的。我需要将.* 添加到特定关键字的末尾,如下所示:

    sed 'Some text amongst which lies a #specific-keyword and everything else that follows./#specific-keyword.*/ /g'
    

    【讨论】:

    • 我很确定这不会给你你想要的。
    • @sjsam 怎么会这样?我错过了一个特定的案例吗?
    • 我能想到的最简单的是sed 's/#specific-keyword.*$//'。但这假设输入中只有一次出现#specific-keyword。事实上,如果您多次出现#specific-keyword,您需要将问题附加到您想要做什么
    • @sjsam,他的“replace all characters after and include a specified string”意味着删除所有内容,包括可能出现的关键字。另一件事是他用空格替换,但没有删除(在这个答案中)。
    • @atefth, regular-expressions.info 是任何知识水平的优秀资源
    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多