Regexp - Дополнительная группа захвата в Bash?

Не уверен, что вы имеете в виду под подходящим временем. Cron будет запускать задания в запланированное время. Он не проверяет другие запланированные задания или другие экземпляры задания.

Таким образом, любые допустимые задания, которые вы определите, будут запущены в указанное время. Любое задание, которое выполняется дольше заданного интервала, будет запускаться несколько раз. Тот, кто написал задание, несет ответственность за то, чтобы оно не выполнялось несколько раз, если это необходимо. Например, проверка файла блокировки или файла PID или чего-то еще.

Существуют очевидные ограничения на количество процессов, которые могут выполняться параллельно, но они не зависят от cron.

0
17.05.2018, 16:33
2 ответа

bash entiende expresiones regulares extendidas estándar ("ERE" ), no PCRE ("Expresiones regulares compatibles con Perl -" ).

Su PCRE:

cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(?:-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD))-[a-z]

El (?:...)en un PCRE no es un -grupo de captura (ni un grupo opcional ). No hay equivalente en un ERE y todos los grupos son de captura.

Para hacer que una expresión sea opcional, puede calificarla con ?, como he hecho a continuación. El ?significa que la expresión anterior debe coincidir una o cero veces.

Como ERE:

cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)?-[a-z]

o, contrayendo (SIT[a-z]|SIT[1-9])en SIT[a-z1-9],

cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD)(-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD))?-[a-z]

También puede agregar anclaje a esto:

^cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD)(-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD))?-[a-z]$

... de lo contrario coincidiríasomethingcell-...-ablahblah

10
28.01.2020, 02:15

(?:...)no es un grupo de captura opcional, sino un grupo que no captura -, que -hasta donde yo sé -ni siquiera es compatible con bash. Esto debería funcionar:

cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD))?-[a-z]

1
28.01.2020, 02:15

Теги

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