【发布时间】:2013-01-26 00:25:49
【问题描述】:
如何 grep 以字符开头和结尾的内容
ABC-0
ABC-1
ABC-10
ABC-20
我想用 grep -v 表示 ABC-0 和 ABC-1
【问题讨论】:
如何 grep 以字符开头和结尾的内容
ABC-0
ABC-1
ABC-10
ABC-20
我想用 grep -v 表示 ABC-0 和 ABC-1
【问题讨论】:
如果您尝试匹配单词,请使用 \b 作为单词分隔符,如下所示:
\b[A-Za-z]-\d+\b
\b- 匹配单词字符之间的位置(任何匹配的\w) 和一个非单词字符(与[^\w]或\W匹配的任何字符)以及 如果第一个和/或最后一个,则在字符串的开头和/或结尾 字符串中的字符是单词字符。
【讨论】:
\b 非常有用,可以拆分诸如“word1,word2”之类的内容。其他时候,您会更喜欢 ^ 和 $,而不是只拆分空格并将“file.ext”之类的内容作为一个单词匹配。
不清楚你的意思。如果你想在开头有一个字符,在结尾有两位数,你可以使用
^[A-Za-z].*\d\d$
如果您只想要一个连字符,然后是一个 单个 数字,请使用:
^[A-Za-z].*-\d$
如果您不在乎有多少位(一个或多个),但必须有一个连字符,请使用:
^[A-Za-z].*-\d+$
如果这些都不是您想要的,请提供更多信息...您问题的第一句话与其余部分并不一致。
【讨论】:
[A-Za-z] 的量词。
你的例子
egrep -v "^(ABC)-(0|1)$"
就是答案。常见情况请看乔恩的回答
^ 标记模式的开始,$ 结束。 | 表示or
【讨论】: