converter linha em coluna com base em chave particular

1

Eu tenho arquivo como abaixo. Mas o cabeçalho está na linha diferente do cabeçalho Os valores são impressos em baixo para o ouvir. Eu quero todo o cabeçalho em uma única linha & valor para o cabeçalho Particular a ser impresso abaixo para o respectivo cabeçalho

ENTRADA

name1    name2           name3            name4
XXXX     IN SERVICE      22905            dhr

Name5
123445678
12345687


Nam6             Name7              Name8   Name9 name10
firstin_firstout godwith             1234   17    david

Name11                                   Name12
dhame                                    Dame2
rame                                     Ragha

OUTPUT

name1   name2   name3   name4   Name5_1 Name5_2 Nam6    Name7   Name8   Name9   name10  Name11_1    Name11_2    Name12_1    Name12_2
XXXX    IN SERVICE  22905   dhr 123445678   12345687    firstin_firstout    godwith 1234    17  david   dhame   rame    Dame2   Ragha
    
por dhamu 05.11.2014 / 13:27

1 resposta

0

Salve o seguinte por algum script.name

#!/usr/bin/awk -f

FNR == 1 {
split ($0,N," ")
r=""
next
}
{
if (FNR>2) r="_" FNR-1
for (i in N) V[N[i] r]=$i
}
FNR == 3 {
for (i in N) {
  V[N[i]"_"1]=V[N[i]]
  delete V[N[i]]
  }
}
END {
for (n in V) printf("%s ", n)
print ""
for (n in V) printf("%s ", V[n])
print ""
}

E opere da seguinte forma:

awk -f sript.name input_files | column -t

em que input_file tem a 1ª linha com cabeçalhos e outros com dados.

    
por 05.11.2014 / 16:37