1

Я хочу отметить те же цифры, которые можно повторить 3 раза. Моя команда:

grep -E '[[:digit:]]{2,3}' file

отмечать каждую цифру, но я хочу одну и ту же цифру.

Входные данные:

11111 222 33
2223345678912345678901234
5

Выход:

11111 222 33
2223345678912345678901234
5

Я бы хотел:

11111 222 33<-mark 222
2223345678912345678901234<-mark 222

1 ответ1

0

Я обнаружил, что вы можете grep файл для 3 последовательных чисел, используя следующую команду:

grep "\([0-9]\)\\1\\1" chatlog.txt

Это отмечает все строки, которые имеют 3 последовательных идентичных номера. \\1 соответствует символу, который был найден в первой группе, в данном случае это число.

Таким образом, чтобы соответствовать 4 одинаковым номерам вы хотели бы:

grep "\([0-9]\)\\1\\1\\1" chatlog.txt

Вы можете определить это более гибким способом:

grep "\([0-9]\)\(\\1\)\{2,3\}"

Приведенное выше утверждение будет соответствовать серии из 3 или 4 последовательных идентичных номеров. Имейте в виду, что первая группа соответствует первой цифре. После этого вы подходите к этой группе еще два или три раза.

Итак, учитывая вход:

one: 1
two: 11
three: 111
four: 1111

Следующая команда:

grep -r "\([0-9]\)\(\\1\)\{2,3\}" test.txt

Возвращает:

three: 111
four: 1111

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