Estoy tratando de incrementar un número de compilación en 1 usando la línea de comando.
Aquí está el contenido de mi archivo de prueba:
SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
El resultado que quiero obtener es el siguiente:
SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;
Estoy tratando de usar algo como:
sed -i -E "s/CURRENT_PROJECT_VERSION = (\d+);/CURRENT_PROJECT_VERSION = \1~;/" test.txt
No tengo experiencia en secuencias de comandos de bash y no sé cómo puedo incrementar el número en uno. (Estoy usando MacOS pero el comando sed es casi el mismo que en Linux)
Respuesta aceptada:
awk -F '= ' '/CURRENT_PROJECT_VERSION/{$2=$2+1";"}1' OFS='= ' input > output
Pruebas
cat file
SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
awk -F '= ' '/CURRENT_PROJECT_VERSION/{$2=$2+1";"}1' OFS='= ' file
SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;