Como jasonwryan comenta:
$ awk -F: '{$NF += 100}1' file
ou, corrigido por uma óbvia omissão ( OFS
) e escrita da maneira que eu escreveria,
$ awk -v FS=':' -v OFS=':' '{ $NF += 100 } { print }' file >file.new
ou
$ awk -v FS=':' -v OFS=':' '{ $NF += 100; print }' file >file.new
Isso lerá a partir de file
e criará um novo arquivo chamado file.new
.
Este script awk
curto trata cada linha de file
como consistindo em campos :
-delimited. Com $NF
, podemos acessar o último campo de cada linha e, com $NF += 100
, adicionamos 100 a qualquer valor.
O print
produzirá a linha modificada ( 1
na solução de comentário é um valor de verdade que solicita awk
a executar a ação padrão de imprimir a linha atual).
As opções de linha de comando -v FS=':' -v OFS=':'
definem os separadores de campo de entrada e saída como :
.
Teste com uma única linha de entrada:
$ echo 'Archie McNichol:(206) 548-1348:250:100:175' | awk -v FS=':' -v OFS=':' '{ $NF += 100 } { print }'
Archie McNichol:(206) 548-1348:250:100:275