用grep搜索开头和结尾的单词

时间:2009-10-02 06:07:09

标签: regex grep

如何grep以字符开头和结尾的内容

ABC-0
ABC-1
ABC-10
ABC-20

我想要为ABC-0和ABC-1

grep -v

3 个答案:

答案 0 :(得分:10)

如果您要匹配单词,请使用\b作为单词分隔符,如下所示:

  

\ B [A-ZA-Z] - \ d + \ B'/ P>

来自this reference

  

\b - 匹配单词字符(任何匹配的字符)之间的位置   \w}和非单词字符(任何与[^\w]\W匹配的内容)以及   如果是第一个和/或最后一个,则在字符串的开头和/或结尾处   字符串中的字符是单词字符。

答案 1 :(得分:9)

目前尚不清楚你的意思。如果你想在开头有一个字符,在结尾有两位数,你可以使用

^[A-Za-z].*\d\d$

如果您只需要连字符,然后只需单个数字,请使用:

^[A-Za-z].*-\d$

如果您不关心有多少位数(一个或多个),但必须有连字符,请使用:

^[A-Za-z].*-\d+$

如果这些都不是您想要的,请提供更多信息......您问题的第一句话与其余部分并不完全吻合。

答案 2 :(得分:4)

为您的例子

egrep -v "^(ABC)-(0|1)$"

就是答案。对于常见情况,请查看Jon的回答

^标志着模式的开始,$结束。 |表示or