使用Linux终端在.txt中找到animal-060,animal-061,animal-062 ...,animal-069

时间:2018-11-15 00:33:57

标签: regex linux terminal grep

我想使用Linux终端在.txt文档中找到字符串animal-0 **。 **是60到69之间的数字。我想我必须在以下命令中使用grep和regex:async-await animallist.txt

这将是正确的命令,还是会例如找到ima6,因为ima60是''中数字和字母的一部分。 抱歉语法错误,英语不是我的母语。

3 个答案:

答案 0 :(得分:0)

您非常接近!请记住,除非使用*+等指定,否则正则表达式字符类(方括号之间的集合或范围)会查找字符范围,并且只会匹配一次。在示例中,{{1 }}与[60-69]相同,它将匹配任何单个[690-6]69范围内的字符。 要找到介于60和69之间的数字,我们必须将这些数字视为一个字符串。

以它为例:假设我们正在寻找的是“ Za”到“ Zj”,而不是“ 60”到“ 69”。在这种情况下,我们将使用模式0-6

使用上面关于您的问题的示例,我们可以采用“ 6”代替“ Z”,然后将“ a-j”替换为“ 0-9”,从而为我们提供模式:

Z[a-j]

作为完整的命令,应为:

animal-06[0-9]

答案 1 :(得分:0)

是的,如果您使用grep -E 'animal-06[0-9]' animallist.txt,它将起作用

答案 2 :(得分:-1)

grep -E 'animal-06[0-9]' animallist.txt 

不,它不会找到ima60。您的[60-69]也不会按照您的想法去做。找到一个教RegEx的好资源。