Tenho vários arquivos de texto contendo valores como este:
width = 64
height = 128
position_x = 48
position_y = 48
Gostaria de analisar esses arquivos e multiplicar esses valores por 2, produzindo um arquivo como este:
width = 128
height = 256
position_x = 96
position_y = 96
É possível fazer um script para isso? Quais comandos posso usar para encontrar substituir esses números?
Encontraria todas as sequências de 1 ou mais dígitos e as substituiria pelo seu valor multiplicado por 2.
Para substituir apenas as
<digits>
linhas que correspondem aoanything = <digits>
padrão, substitua por:Aqui está uma abordagem estranha:
Note que isso pressupõe que o terceiro campo separado por espaços em branco do arquivo consiste apenas em dígitos e é o campo que você deseja multiplicar. Ele também pulará quaisquer linhas cujo terceiro campo seja 0, pois imprimimos apenas em casos em que
$3*2
avalia como true e0*2
avalia como false (0). Para evitar isso, use:Ambos os itens acima podem alterar o espaço em branco de entrada, convertendo tabulações em espaços, por exemplo. Estou assumindo que isso não é relevante aqui, já que seu arquivo de exemplo tem apenas um único espaço ao redor de cada
=
.