Incrementa uma variável usando um script Bash

4

Eu tenho um arquivo que contém o seguinte texto.

//
//  test_file.h
//  test project
//
//  Created by Test User
//

#ifndef test_file_constants_h
#define test_file_constants_h

// Generic includes
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

#define PF_MASTER_VERSION 3.0.0
#define PF_BUILD_VERSION 1

#endif

Eu preciso escrever um script que possa incrementar o PF_BUILD_VERSION de um a cada vez que ele for executado. Eu tentei olhar para sed e AWK e falhou!

    
por Lee Armstrong 03.04.2015 / 12:00

2 respostas

5

Uma solução baseada em awk poderia ser:

awk '/^#define PF_BUILD_VERSION / {$3++} 1' infile >outfile  &&  mv outfile infile
    
por 03.04.2015 / 12:08
5

Uma abordagem Perl:

perl -pe 's/^#define PF_BUILD_VERSION \K(\d+)/$1+2/e' file > newfile

Ou para editar o arquivo:

perl -i -pe 's/^#define PF_BUILD_VERSION \K(\d+)/$1+2/e' file
    
por 03.04.2015 / 12:49