Você deve canalizar em um column -t
o resultado, como:
awk '{ print $2 " " $1}' file.txt | column -t
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.
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 ""}'
Tags text-processing