Como pode definir uma linha como coluna no unix [duplicado]

4

Como posso definir uma linha como coluna no Unix. Exemplo:

name : Keshav
sub  : C++
branch: cse
DOB  :22/09/1990
company:NONE

name : Vijay
sub  : Java
branch: cse
DOB  :22/09/1985
company:NONE

Eu quero uma saída assim:

name     sub   branch  DOB           company
Keshav   C++   cse     22/09/1990    NONE
Vijay    Java  cse     22/09/1990    NONE
    
por user104752 27.02.2015 / 12:45

2 respostas

3

Outra abordagem:

awk 'BEGIN{FS=":|\n";RS=""}NR==1{print $1,$3,$5,$7,$9}{print $2,$4,$6,$8,$10}'
    
por 27.02.2015 / 13:24
1

Você pode querer colocar o cabeçalho manualmente e executar o seguinte awk no arquivo:

awk -F: '{count++; printf("%s ",$2); if (count>5){count=0; printf("\n");}}' x.txt >> res.txt

Supondo que x.txt contenha as entradas como você e res.txt seja um arquivo preparado com os cabeçalhos da seguinte forma:

name sub branch DOB company

A saída resultante será:

name  sub  branch  DOB  company
 Keshav  C++  cse 22/09/1990 NONE
 Vijay  Java  cse 22/09/1985 NONE
    
por 27.02.2015 / 13:17