Uma solução baseada em awk
poderia ser:
awk '/^#define PF_BUILD_VERSION / {$3++} 1' infile >outfile && mv outfile infile
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!
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