Comparando o valor na mesma coluna e direcionando a saída para a nova coluna

1

Eu tenho meu arquivo de entrada como

DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343414 11  110005
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843714 11  110006
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343214 11  110007
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843914 11  110009
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945414  11  110010
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343314 11  110013
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945614  11  110015
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0941 29343514 11  110019
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446214  11  110021
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945814  11  110022
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446414  11  110024

e minha exigência é ter a seguinte saída

DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343414 11 110005  0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843714 11 110006  0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343214 11 110007  0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843914 11 110009  1
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945414  11 110010  0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343314 11 110013  2
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945614  11 110015  1
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0941 29343514 11 110019  3
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446214  11 110021  1
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945814  11 110022  0 
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446414  11 110024  1

ou seja, a última coluna deve imprimir o valor da próxima linha da última coluna -1 ou seja, (n + 1) -n -1 = próxima coluna.

    
por Ashwini Tyagi 12.11.2014 / 14:57

1 resposta

2

Tente este:

awk 'NR==1{last=$NF-1}{print $0,$NF-last-1; last=$NF}' file

Na primeira linha, definimos a variável last como um valor do último campo menos 1 ( $NF-1 ), apenas para iniciar. Posteriormente, last terá apenas o valor de $NF da linha anterior.

    
por 12.11.2014 / 15:11