我需要帮助来解决一个使用grep的正则表达式问题,它将搜索一个文件并显示将[a-z]按字母顺序排列在每个“集合”中的行(通过示例将变得清晰)。
有效匹配示例:
无效匹配示例:
它没有给出任何无效的匹配,但却忽略了像下面这样的有效示例,我无法弄清楚为什么。
有效匹配示例:
a96d7e75-4432-41de-835c-625a636c1914 prefranks
b028224d-314b-4b03-a873-1436838f9233 escape
无效匹配示例:
c69f34e8-905e-4ce8-7893-a3e271d6f48c reconvince
e9db0700-f72b-4bea-ae37-e18ec6ca80d3 lumberjacks
我使用了:
egrep '^([^a-f-]*a?[^a-f-]*b?[^a-f-]*c?[^a-f-]*d?[^a-f-]*e?[^a-f-]*f?-){4}[^a-f-]*a?[^a-f-]*b?[^a-f-]*c?[^a-f-]*d?[^a-f-]*e?[^a-f-]*f?[0-9]* ' text.txt
它没有给出任何无效的匹配,但却忽略了像下面这样的有效示例,我无法弄清楚为什么。
6cd11113-bcf3-4f73-85f5-145b49225244 neoconservative
96239f18-5c62-495a-b1f8-50759443b885 fellest
51771125-b4d8-4cf8-a3d9-67117263f708 macular
a266f798-d772-47f0-9bdf-451939c2007e buntings
egrep
已经在近20年中被弃用,取而代之的是grep -E
。 - undefinedtar
也已被pax
所取代,你知道那是怎么回事。 - undefineda96d7e75-4432-41de-835c-625a636c1914 prefranks
中,你认为有效的部分,你在一个"e"后面有一个"d",在一个"e"后面有一个"c",在一个"r"后面有一个"e",在一个"r"后面有一个"a",在一个"n"后面有一个"k" :-) - undefined-
分隔的部分内,比如a96d7e75
,而不是整个第一个字段或整行。 - undefined