删除与给定开头和2个可能结束匹配的所有行

时间:2014-07-03 13:41:15

标签: regex sed

我想将所有符合以下要求的行压缩到文件中:

  • 该行以'开头*' (一个空格后面跟一个明星)
  • 该行以' .cpp'结尾。或者' .hpp'

我不关心它之间的内容 所以,例如,这应该出现

  • * ns1/file.cpp
  • * file2.hpp

我尝试了以下命令 sed -e '/^ \**(\.[hc]pp)$/d' file

但它与线条不匹配。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

您需要在其间使用.*来匹配任意文字:

sed '/^ \*.*\.[hc]pp$/d' file

答案 1 :(得分:0)

egrep -v '^ [*].*[.][ch]pp$' YourFilePattern

替代sed