Regex 我的白鹭x已经停止工作了?是什么原因造成的?

Regex 我的白鹭x已经停止工作了?是什么原因造成的?,regex,shell,grep,Regex,Shell,Grep,我最近注意到,我运行这些命令的cron作业不再针对列表中特定长度的域名使用egrep。我之前用过这个: egrep -ix '[a-z]{5}\.com' cleanedcomlist.txt >> 5letter.txt cleanedcomlist.txt的内容现在是: abcdf.com acbdf.com acdfg.com acdff.com notworking.com 这是我的输出: $ rm -rf 5letter.txt $ egrep -ix '[a-z]{5

我最近注意到,我运行这些命令的cron作业不再针对列表中特定长度的域名使用egrep。我之前用过这个:

egrep -ix '[a-z]{5}\.com' cleanedcomlist.txt >> 5letter.txt
cleanedcomlist.txt的内容现在是:

abcdf.com
acbdf.com
acdfg.com
acdff.com
notworking.com
这是我的输出:

$ rm -rf 5letter.txt
$ egrep -ix '[a-z]{5}\.com' cleanedcomlist.txt >> 5letter.txt
$ cat 5letter.txt
$
值得注意的是,不存在任何输出


很抱歉给你带来了困惑。是想展示我的努力

当然,它们不起作用:这个正则表达式过滤长度为5的名称(确切地说),而您的名称中没有一个是5个字母!将表达式更改为

egrep -ix '[a-z]{6}\.com'

…并使用给定的输入文件正确发出输出(对于六个字符的名称)。

定义“不工作”吗?如果您自己运行这个确切的命令(而不是一些模糊相似的命令),您会得到什么?这些示例行中没有一行与
[a-z]{5}.com
作为一整行匹配。它们都超过五个字符。
aabbxs.com
应该与
[a-z]{5,6}\.com
调用
grep
匹配。到目前为止,您已经发布了四个不同的命令:
egrep-x
egrep-ix'[a-z]{5}\.com'cleanedcomlist.txt>>5letter.txt
egrep 5,6}\.com'cleanedcomlist.txt>>5letter.txt
grep'[a-z]{5,6}\.com'cleanedcomlist.txt>>5letter.txt
。你能选一个编辑你的问题,显示完整的输入和输出(可以随意制作一个只有两行的小“cleanedcomlist.txt”,这样你就可以发布整个内容,这将使每个人都更容易)编辑原始帖子,使其更干净。我在这方面做得很糟糕。我让这一切运作了一年多。我用同样的输出编辑了原稿。原始的cleanedcomlist.txt中大约有100个lll.com域。同一个egrep运行6个字母、7个字母和8个字母,并返回0字节文件。计算错误。现在我有了。egrep-ix'[a-z]{6}\.com'cleanedcomlist.txt>>5letter.txt wc 5letter.txt 0 0 0 5letter.txt
llll.com
?您意识到这些是大写字母,并且根据您所在地区的排序顺序,您现在使用的表达式可能只适用于小写?(这就是为什么在询问StackOverflow问题时使用匿名数据会如此混乱的部分原因:我们无法区分哪些不匹配是由于匿名过程造成的,哪些不匹配与您的实际问题有关)。您还检查了文件类型吗?如果输入文件中有DOS行尾,则会阻止任何内容匹配。