如何使用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
相匹配的内容)之间的位置,并且如果字符串的第一个字符和/或最后一个字符是单词字符,则也会匹配字符串的开头和/或结尾。
不太清楚你的意思。如果你想在开头有一个字符,并且结尾是两个数字,你可以使用以下代码:
^[A-Za-z].*\d\d$
-单个数字。
^[A-Za-z].*-\d$
如果您不关心有多少位数字(一个或多个),但必须有连字符,请使用:
^[A-Za-z].*-\d+$
[A-Za-z]
的量词。 - Gumbo举个例子
egrep -v "^(ABC)-(0|1)$"
答案就是这个。对于常见情况,请参考Jon的回答。
^
标记模式的开头,$
标记结尾。|
表示或。
\b
是很有用的,可以将像“word1,word2”这样的内容拆分开来。而有时你可能更喜欢使用^
和$
只在空格处进行拆分,并匹配像“file.ext”这样的单词。 - Agostino