Игнорируя пробелы (которые вы можете заполнить самостоятельно позже) и возможные ведущие нули (аналогично), вы ищете совпадение любого из
[5-9]\|[0-9]+
[1-9][0-9]\|[0-9]+
[0-9]+\|[0-9]+\|[0-9]+
для времени в диапазоне
[5,10) minutes
[10,99) minutes
1+ hours
соответственно.
Поэтому объедините их в группу совпадений (...|...)
с достаточной привязкой в начале и конце (чтобы не совпало с 14|59
или 1|00|00
).
Это дает
grep -E 'on +([5-9]\|[0-9]+|[1-9][0-9]\|[0-9]+|[0-9]+\|[0-9]+\|[0-9]+) *$'
Мы можем немного упростить, поскольку секунды являются общими для всех трех регекспов:
grep -E 'on +([5-9]|[1-9][0-9]|[0-9]+\|[0-9]+)\|[0-9]+ *$'
Этого можно добиться путем соединения grep
и grep
следующим образом (Хотя я уверен, что есть более эффективный способ):
grep 'de niro' testimdb | grep 'pacino'
Использование расширенного регулярного выражения вgrep
:
grep -E 'de niro.*pacino|pacino.*de niro' testimdb