Este one-liner produz a saída com os sinais de menos:
awk -F, '{if (NR>1) {print $1 "-" a "," $2 "-" b} a=$1 ; b=$2}' numbers
201310-201309,699-694
201311-201310,700-699
201312-201311,705-700
201401-201312,713-705
201402-201401,740-713
Esta versão mostra as diferenças reais:
awk -F, '{if (NR>1) {print $1-a, $2-b } a=$1 ; b=$2}' numbers
1 5
1 1
1 5
89 8
1 27
Em ambos os casos, o programa awk começa com uma opção para definir o separador de campos para uma vírgula ( -F,
). Então, para cada linha no arquivo, uma instrução if
é executada: se já passamos da primeira linha ( NR>1
), então as diferenças são impressas. Os próximos dois comandos ( a=$1 ; b=$2
) atualizam as variáveis que armazenam os últimos valores.