Как я говорю grep после передачи по каналу от кошки только выделять цифры, больше, чем 720, или возможно, больше чем два digtis?

Это - довольно простой вопрос. Если требуется включать дополнительно полезную информацию об использовании grep этим способом, не стесняться.

1
задан 21 January 2019 в 14:09

1 ответ

Предположение, что путем "выделения чисел, больше, чем 720", Вы подразумеваете, что хотите видеть полный текст, но те числа, выделенные с, раскрашивают терминальный вывод. Я далее предположу, что такие числа должны также быть выделены, если они - часть слова, или иначе снабженный префиксом или снабженный суффиксом что-либо нечисловое (включая знаки отрицания или десятичные точки). Однако продвижение обнуляет, не будет часть соответствия.

Тем не менее можно попробовать регулярное выражение ^|[1-9]\d{3,}|[89]\d{2}|7[2-9]\d после включают PCRE-совместимые выражения в grep с -P переключатель. Вот вывод в качестве примера, читающий из файла example.txt, с выделенными частями полужирным:

$ grep -P '^|[1-9]\d{3,}|[89]\d{2}|7[2-9]\d' example.txt

something
foo 123 42 1111 777 719 720 1000000
321 -6666 bar999 8383m x1425y 52411.0 00013

Используемое регулярное выражение состоит из нескольких частей, которые объединены с каналом (|), что означает, что это соответствует, если какая-либо из этих частей соответствует:

  • ^ просто соответствия в начале каждой строки, на самом деле не используя символа. Это добавляется, чтобы также показать все другие строки без соответствующих чисел в выводе, но не выделяя части тех строк.
  • [1-9]\d{3,} соответствует единственной цифре в диапазоне 1-9 (никакой начальный нуль) сопровождаемый по крайней мере тремя или больше произвольными цифрами (\d эквивалентно [0-9]). Это правило соответствует всем числам, больше, чем или равный 1 000.
  • [89]\d{2} соответствует числу, запускающемуся с 8 или 9 сопровождаемых точно двумя более произвольными цифрами. Это соответствует всем числам от 800 до 999.
  • 7[2-9]\d соответствует числу, запускающемуся с 7, сопровождаемых единственной цифрой в диапазоне 2-9 и другой единственной произвольной цифрой. Это покрывает все числа от 720 до 799.
1
ответ дан 7 December 2019 в 15:08

Другие вопросы по тегам:

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