Как я могу определить версию пакета, кэшированного в Hydra для Nix nixpkgs?

Для поиска field<decimals>вхождений внутри cast(...)операторов, при условии отсутствия несоответствующих скобок, с GNU grepили совместимой сборкой с поддержкой PCRE:

<abc.txt grep -Po 'cast(\((?:[^()]++|(?1))*\))' |
  grep -Po '\bfield\d+\b'

Это использует способность PCRE определять рекурсивные регулярные выражения. Выше (?1)относится к регулярному выражению, заключенному в (...), поэтому мы ищем cast, за которым следует регулярное выражение «R», начинающееся с (, за которым следует любое количество скобок, отличных от -(++. ] — это просто не-версия с возвратом+)или более букв «R», за которыми следует ).

Это позволяет нам найти паросочетание )для открытия (, следующего за cast.

Второй grepизвлекает только field<decimal>(, окруженные границами слов(\b))из тех cast(...)утверждений, которые извлекает первый grep.

Это предполагает, что эти операторы SQL находятся в одной строке. Если нет, вы можете добавить опцию -zк первой grep.

4
29.02.2020, 02:08
0 ответов

Теги

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