我在Windows上使用Cygwin。我想从文件中提取名称中只包含9个字母的所有行。
要做到这一点,我正在使用:
cat filename.txt | grep -P "[a-z]{9}"
但是这也会返回不同大小和大于9的单词。
我甚至将环境变量LC_ALL设置为C.
我能够完成这项工作:
cat filename.txt | grep -P“^ [a-z] * [a-z] $”
这只显示带小写字母的单词。
请注意我在Cygwin中运行命令,我发现Cygwin和Linux Distro之间存在某些差异。这些命令的工作方式不同。
答案 0 :(得分:1)
尝试
cat filename.txt | grep -P "^[a-z]{9}$"
^ =字符串的开头
$ =字符串结尾
你的正则表达式返回包含小写字母的所有单词,其长度是9的倍数。