Adicionando números a cada 2 linhas alternativas usando o awk

1

Eu preciso adicionar números e imprimir a soma a cada 2 linhas alternativas.

ex:

x  
1  
2  
y  
3  
4  

eu preciso de saída:

x 3  
y 7
    
por John 08.11.2016 / 09:00

2 respostas

4

Aqui está uma maneira de fazer isso, usando o pr utility e o Awk.

Usando a seguinte entrada:

$ cat ip.txt 
x  
1  
2  
y  
3  
4  

Primeiro converta o arquivo de entrada para três entradas de coluna e, em seguida, use Awk:

$ pr -3at ip.txt | awk '{print $1, $2+$3}'
x 3
y 7

Outra forma de getline <var> :

The getline command used in this way sets only the variables NR, FNR, and RT (and, of course, var). The record is not split into fields, so the values of the fields (including $0) and the value of NF do not change.

$ awk '{getline a; getline b; print $0 a+b}' ip.txt 
x  3
y  7
    
por 08.11.2016 / 09:12
0

Outra abordagem, fazendo uso da declaração getline do awk.

$ awk '{a=$0;getline;b=$1;getline;print a,b+$1}' ip.txt
x 3
y 7
$
    
por 08.11.2016 / 09:18

Tags