Perl-вариант @Kusalananda:
perl -pE 's/id: *\K(\d+)/($1-1)%799+1/e'
(числа не совсем соответствуют примеру PO)
No puede probar comandos completos dentro de los corchetes test
del shell. Desea eliminar esos corchetes por completo, lo que hará que simplemente pruebe el código de salida de los comandos.
#!/bin/bash
PREVIOUS_COMMIT=e099d95d52b8fca99e47fd7cee5f782287178b27
SERVICE=service-web-prj1
if ! git diff "$PREVIOUS_COMMIT" HEAD --name-only | grep -qs "$SERVICE" || ! git diff "$PREVIOUS_COMMIT" HEAD --name-only | grep -qs 'service-web'
then
echo "Didn't pass first"
exit 0
fi
echo passed first with "$SERVICE"
if ( ! echo "$SERVICE" | grep -q "^service-web" )
then
echo "Didn't pass second"
exit 0
fi
echo passed second with "$SERVICE"