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

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

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

2 ответа2

2

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

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

Чтобы сопоставить 7-буквенные слова, необходимо заменить * на {5}:

grep -E -i "^(.).{5}\1$"
2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .