尝试学习正则表达式来查找特定长度的文件?

尝试学习正则表达式来查找特定长度的文件?

我有一个文件,其中包含不同长度的国家/地区列表。该文件被称为countries并且位于我的工作目录中。

我想运行一个grep命令来告诉我哪些国家/地区有九个或更多字母。

我目前正在努力使语法正确。

我是否沿着以下思路寻找:

grep '^.\{9\}' countries

刚刚尝试了上面的方法,似乎没有任何作用?

答案1

这对我有用;将返回包含九个或更多字符(包括空格)的所有单词。

grep -oh '.\{9,\}' countries

再次阅读您的问题后更新;这次只匹配字母。因此,如果您需要包含九个或更多连续字母的国家/地区名称,这是我的建议。

grep -ioh '[a-z]\{9,\}' countries

这与“西德”之类的内容不匹配。取决于您将此示例中的国家/地区名称视为 11 还是 12。但是,“长度”等于或大于九 (9)。

答案2

您缺少一个“,”(逗号)来表示 9 个或更多字符:

grep '^.\{9,\}' countries

相关内容