Intercambiar duas colunas

0

Estou tentando trocar a coluna "Hits" e "Domain".

cat filename Saída:

  Hits          Domains
  204492        greenlivingasc.in
  37102         smcracks.uk
  17410         bahriains.org
  10975         cmhlahore.co.uk
  10342         albps.in
  9541          mediabites.co.uk

Mas quando eu usei o seguinte comando para trocar a coluna, awk '{ print $2 " " $1}' filename , ele exibe a formatação desalinhada:

 Domains    Hits       
 greenlivingasc.in 204492
 smcracks.uk 37102
 bahriains.org 17410
 cmhlahore.co.uk 10975
 albps.in 10342
 mediabites.co.uk 9541

Eu quero obter um alinhamento adequado após a troca.

    
por blaCkninJa 01.06.2016 / 12:36

2 respostas

1

Você deve canalizar em um column -t o resultado, como:

awk '{ print $2 " " $1}' file.txt | column -t
    
por 01.06.2016 / 12:39
0

A solução como column mau ajuda:

:~$ column -t 123
Hits    Domains
204492  greenlivingasc.in
37102   smcracks.uk
17410   bahriains.org
10975   cmhlahore.co.uk
10342   albps.in
9541    mediabites.co.uk

Outra maneira é usar expand :

:~$ cat 123 | expand --tabs=10
Hits          Domains
204492        greenlivingasc.in
37102         smcracks.uk
17410         bahriains.org
10975         cmhlahore.co.uk
10342         albps.in
9541          mediabites.co.uk

OU tente alterar a expressão do awk:

 cat 123 | awk -v cols=1 '{printf("%-44s",$0)} NR%cols==0 {print ""} END {print ""}'
    
por 01.06.2016 / 12:44