Использование регулярных выражений для поиска списка слов. Поиск двух букв вместо 3. Почему?

Я изучаю регулярные выражения, и я в тупике. Вот мой процесс до сих пор …

Я загрузил этот файл.

wget http://www.mieliestronk.com/corncob_lowercase.txt mv corncob_lowercase.txt words.txt 

Я хотел все 3 буквы слова …

 grep '^...$' words.txt 

Это означает, что «abe»

 grep '^abe.$' words.txt 

Это НЕ находит "abe"

 grep '^abe$' words.txt 

Это находит «abe» в библиотеке, которая поставляется с Arch Linux.

 grep '^abe$' /usr/share/dict/cracklib-small 

Я в тупике.

One Solution collect form web for “Использование регулярных выражений для поиска списка слов. Поиск двух букв вместо 3. Почему?”

 $ file corncob_lowercase.txt corncob_lowercase.txt: ASCII text, with CRLF line terminators 

Вероятно, окончание строк DOS является источником вашей проблемы. CR считается символом для хотя бы некоторых целей.

Запустите его через dos2unix , или tr -d '\r' , перед grep ing.

  • Как мне искать файл для строки, а затем использовать его как переменную?
  • BSD sed: заменить только N-е вхождение шаблона
  • Как добавить новые строки из другого файла с помощью sed
  • Использование 'sed' для поиска и замены
  • Как удалить команды в истории, соответствующие заданной строке?
  • Как я могу группировать числа в файле
  • Найти и заменить слова в текстовом файле рекурсивно
  • Сравните 2 файла, если он находится между диапазоном чисел
  • Команда, чтобы увидеть, находится ли слово в списке файлов и выводит, сколько файлов оно находится в
  • Греп для числа в строке
  • Каковы альтернативные инструменты для поиска файлов в полном объеме?
  • Linux и Unix - лучшая ОС в мире.