GNU/Linux >> Tutoriels Linux >  >> Linux

Incrémenter le numéro de build dans Bash ?

J'essaie d'incrémenter un numéro de build de 1 en utilisant la ligne de commande.

Voici le contenu de mon fichier test :

SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 4;

Le résultat que je souhaite obtenir est le suivant :

SOME_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;
SOME_SECOND_DUMMY_VALUE = -1;
CURRENT_PROJECT_VERSION = 5;

J'essaie d'utiliser quelque chose comme :

sed -i -E "s/CURRENT_PROJECT_VERSION = (\d+);/CURRENT_PROJECT_VERSION = \1~;/" test.txt

Je ne suis pas expérimenté dans les scripts bash et je ne sais pas comment je peux incrémenter le nombre d'un. (J'utilise MacOS mais la commande sed est presque la même que sous Linux)

Réponse acceptée :

awk -F '= ' '/CURRENT_PROJECT_VERSION/{$2=$2+1";"}1' OFS='= ' input > output

Essais

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. Comment lire une chaîne en tant que numéro hexadécimal dans Bash ?

  2. Comment tester si une variable est un nombre dans Bash ?

  3. Arrondir un nombre divisé en Bash

  4. Obtenir un entier plafond à partir d'un nombre sous Linux (BASH)

  5. Comment ajouter une icône à l'invite bash

Bash Shebang

Comment incrémenter et décrémenter une variable dans Bash (compteur)

Expression de séquence bash (plage)

Bash Select (créer des menus)

Bash For Loop – Le guide le plus pratique

Script Shell/Bash pour trouver des nombres premiers sous Linux