用sed删除字符串的组合

时间:2017-08-23 17:13:43

标签: linux bash sed

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

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

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

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

很长一段时间......

如何在一行中删除模式(总是相同)+数字(任意组合0-9)和字母(AZ,az),以避免重复"模式+某事"

由于

2 个答案:

答案 0 :(得分:1)

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

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

注意:

  1. 正则表达式不使用parens分组\(...\),所以我删除了它。

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

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

答案 1 :(得分:0)

如果您确实要删除包含模式的行,请使用sed&#39}删除命令d

试试这个:

$ sed '/pattern.*/d' file