我想使用Linux终端在.txt文档中找到字符串animal-0 **。 **是60到69之间的数字。我想我必须在以下命令中使用grep和regex:async-await
animallist.txt
这将是正确的命令,还是会例如找到ima6,因为ima60是''中数字和字母的一部分。 抱歉语法错误,英语不是我的母语。
答案 0 :(得分:0)
您非常接近!请记住,除非使用*
或+
等指定,否则正则表达式字符类(方括号之间的集合或范围)会查找字符范围,并且只会匹配一次。在示例中,{{1 }}与[60-69]
相同,它将匹配任何单个[690-6]
,6
或9
范围内的字符。
要找到介于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的好资源。