Використовуючи файл Grep on txt, щоб знайти 7 літерних слів, які починаються з тієї самої літери


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

Я використовую список скремблерських слів, який я завантажив під назвою "sowpods.txt", і я намагаюся використовувати grep, щоб знайти всі 7 літер слів у файлі, які починаються і закінчуються тією самою літерою. Рядок, який я маю зараз, дає мені помилка зворотного зв'язку, тому я спробував використовувати онлайн-путівники, але вони були шалено заплутані. Може хтось допоможе мені це зробити? Дякую!

Я також на Mac і використовую термінал за замовчуванням.


2
Будь ласка, не робіть більше роботи для інших людей, вандалізуючи ваші публікації. Опублікувавши в мережі Stack Exchange (SE), ви надали право без відкликання згідно ліцензії CC BY-SA 3.0 для SE на розповсюдження цього вмісту. За політикою ПП будь-який вандалізм буде повернений. Якщо ви хочете дізнатися більше про видалення публікації, перегляньте: Як працює видалення?
iBooot

Відповіді:


2

Це буде працювати як розширений регулярний вираз. Вам потрібно grep -E:

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

Щоб відповідати 7-літерним словам, потрібно замінити їх *на {5}:

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

Я фанат -xпрапора:grep -Eix "(.).{5}\1"
Джим Л.

2

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

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

Зауважте, що в ідеї греп-регексу добре використовувати одну цитату, щоб уникнути розширення параметра оболонки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.