, используя grep для исключения результатов, не соответствующих конкретному запросу

Игнорируя пробелы (которые вы можете заполнить самостоятельно позже) и возможные ведущие нули (аналогично), вы ищете совпадение любого из

[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]+ *$'
1
14.04.2018, 21:20
1 ответ

Этого можно добиться путем соединения grepи grepследующим образом (Хотя я уверен, что есть более эффективный способ):

grep 'de niro' testimdb | grep 'pacino'

Использование расширенного регулярного выражения вgrep:

grep -E 'de niro.*pacino|pacino.*de niro' testimdb
1
27.01.2020, 23:43

Теги

Похожие вопросы