【问题标题】:delete a combination of string with sed删除字符串与 sed 的组合
【发布时间】:2017-08-24 01:31:15
【问题描述】:

我用 sed 命令删除了文本行中的一些字符串:

sed 's:\(pattern\.\)::g' file

但某些模式有字母和数字:

sed 's:\(pattern\.\|pattern1\.\|pattern2\.\|pattern23\.\|patternx\.\|patternYx\.\)::g' file

很长……

如何在一行中删除模式(总是相同)+数字(0-9的任意组合)和字母(A-Z,a-z),以避免重复“模式+某事”

谢谢

【问题讨论】:

    标签: linux bash sed


    【解决方案1】:

    要删除pattern后跟零个或多个数字或字母后跟.,请使用:

    sed 's:pattern[[:alnum:]]*\.::g'
    

    注意事项:

    1. 正则表达式不使用括号分组 \(...\),因此我将其删除。

    2. [[:alnum:]] 匹配任何字母或数字。

    3. [[:alnum:]]* 匹配零个或多个任意字母或数字。

    【讨论】:

      【解决方案2】:

      如果你真的想删除包含模式的行,那么使用sed的删除命令d

      试试这个:

      $ sed '/pattern.*/d' file
      

      【讨论】:

      • 请再次阅读问题并解释是什么让您认为 OP 想要删除整行。
      猜你喜欢
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2011-03-07
      • 1970-01-01
      相关资源
      最近更新 更多