вопрос grep — Попытка отобразить строки в текстовом файле, содержащем более 2 определенных символов

#grep

#grep

Вопрос:

Получен файл, подобный:

 $ cat file1.txt
123456
1234n5678nn
12n4567890123
123n56n89n1n
  

Я пытаюсь:

 grep -E 'n{3,}' file1.txt
  

чтобы получить только строки, в которых более двух вхождений n (не обязательно должны быть последовательными), но это не сработало. Результат, который я хочу, это:

 1234n5678nn
123n56n89n1n
  

Пожалуйста, обратите внимание, что я должен делать это только с помощью grep or egrep — невозможно использовать sed or awk .

Комментарии:

1. Должен быть лучший способ, но тот, который я могу придумать с самого начала, grep -E "n.*n.*n" file1.txt .

2. Теперь 🙂 перейдем к самой интересной части — как мне отметить, что на этот вопрос получен ответ; спасибо!

3. @Rfroes87 должен скопировать свой комментарий в раздел ответов, затем вы принимаете его.

Ответ №1:

Вы могли бы сделать это следующим образом:

 grep -E '(n.*){3,}' file1.txt
  

Или с использованием метода, который вы уже протестировали и который отлично работал:

 grep -E 'n.*n.*n' file1.txt