Использование Grep в текстовом файле для поиска 7-буквенных слов, начинающихся с той же буквы

326
Kappa123
grep -i "^(.).*\1$" sowpods.txt > output.txt 

Я использую список слов скрэббл, который я скачал под названием "sowpods.txt", и я пытаюсь использовать grep, чтобы найти все 7-буквенные слова в файле, которые начинаются и заканчиваются одной и той же буквой. из-за ошибки обратной ссылки, поэтому я попытался использовать онлайн-справочники, но они были безумно запутанными. Может ли кто-нибудь помочь мне сделать это? Спасибо!

Я также на Mac и использую терминал по умолчанию.

1

2 ответа на вопрос

2
Kamil Maciorowski

Это будет работать как расширенное регулярное выражение. Вам нужно grep -E:

grep -E -i "^(.).*\1$" 

Для сопоставления 7-буквенных слов вам необходимо заменить *на :

grep -E -i "^(.).\1$" 
2
oliv

Если вы хотите использовать основное регулярное выражение (без опции -E), вам нужно поставить обратную косую черту \перед открывающей и закрывающей скобками:

grep -i '^\(.\).\\1$' file 

Обратите внимание, что во избежание расширения параметров оболочки рекомендуется использовать одинарные кавычки в регулярных выражениях grep.

Похожие вопросы