【问题标题】:Replace strings with more than one character用多个字符替换字符串
【发布时间】:2014-01-23 21:23:14
【问题描述】:

我有一个如下所示的文本文件:

A B
A D
S F
D TGT
DS K
FDGFDA S
A RE

我想用一个字符(例如“X”)替换所有包含多个字符(如上面的“TGT”、“DS”、“FDGFDA”和“RE”)的字符串。

有没有办法做到这一点?看起来 sed 应该很容易做到,但我无法计算出要使用的正则表达式字符串!

【问题讨论】:

    标签: regex replace sed


    【解决方案1】:

    这是正则表达式:

    \w{2,}
    

    Debuggex Demo

    【讨论】:

      【解决方案2】:

      你可以这样做:

      sed 's/^[[:alnum:]]\{2,\}/X/' filename
      

      【讨论】:

        【解决方案3】:

        感谢回答我问题的两位:我找到了另一个正则表达式的方法:

        sed -i 's/[A-Z][A-Z][A-Z]*/X/g'
        

        【讨论】:

        • 您应该可以将其缩短为sed -i 's/[A-Z]\{2,\}/X/g'
        猜你喜欢
        • 2015-03-15
        • 2020-08-31
        • 1970-01-01
        • 2013-03-14
        • 2022-01-08
        • 2014-08-31
        • 1970-01-01
        相关资源
        最近更新 更多