Incrementar texto da versão armazenado em um arquivo de script bash

2

Eu tenho um arquivo bash e quero armazenar um texto de versão nele (de preferência " echo version 1.0.1 " para que ele imprima automaticamente sua própria versão quando executado)

Estou tentando criar um grupo de comando que atualizará a versão.

Até agora eu tenho

grep "echo version" ~/.bashrc | cut -c 14- | sed -e 's/\./\n/g'

que extrai "echo version 1.0.1", corta a "echo version" e divide a versão entre os pontos

1
0
1

e estou atingindo meu limite de regex, bash e google-foo para extrair o último número (versão de patch) que eu poderia incrementar e gravar de volta no arquivo.

Principalmente, como obtenho esse último número?

Além disso, se houver algo muito melhor que eu deveria fazer, sugiro.

    
por laggingreflex 09.08.2014 / 14:40

2 respostas

3

awk -F'[ .]' '/^echo version/ {print $1,$2,$3"."$4"."$5+1}' ~/.bashrc

Saída:

echo version 1.0.2

-F'[ .]' : separador (es) de campo em branco e ponto

/^echo version/ : pesquisa por início de linha ( ^ ) com echo version

print $1,$2 : imprimir sequências separadas por um espaço em branco

$5+1 : incremento de string / valor por 1

    
por 09.08.2014 / 14:55
1

perl para o resgate

$ cat file
echo version 1.0.1
$ perl -i -pe 's/echo version \d+\.\d+\.\K(\d+)/ $1+1 /e' file
$ cat file
echo version 1.0.2
    
por 09.08.2014 / 15:06