GNU/Linux >> Tutoriales Linux >  >> Linux

¿Incrementar el número de compilación en Bash?

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;

Linux
  1. ¿Cómo leer una cadena como número hexadecimal en Bash?

  2. ¿Cómo pruebo si una variable es un número en Bash?

  3. Redondear un número dividido en Bash

  4. Obtenga el número entero del techo del número en Linux (BASH)

  5. El incremento del contador en el bucle Bash no funciona

Bash Shebang

Cómo incrementar y decrementar una variable en Bash (Contador)

Expresión de secuencia Bash (rango)

Bash Select (hacer menús)

Bash For Loop:la guía más práctica

Shell/Bash Script para encontrar números primos en Linux