Analisa a saída df por colunas

4

Estou com dificuldades para extrair as colunas Sistema de arquivos e Montadas em da saída do df.

$df -Hl

Resultados em

Filesystem                          Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk1                          250G   226G    24G    91% 1576021 4293391258    0%   /
localhost:/BJeZ62GypQBU7sxaZg0qP6   250G   250G     0B   100%       0          0  100%   /Volumes/MobileBackups
/dev/disk2s1                         16G   4.7G    11G    30%       0          0  100%   /Volumes/NO NAME
/dev/disk3s1                         15G   8.0G   7.5G    52%       0          0  100%   /Volumes/FLASH DRIVE

Adicionando seleção de coluna

df -Hl | awk '{ print $1"\t"$9 }'

resulta em

Filesystem  Mounted
/dev/disk1  /
localhost:/BJeZ62GypQBU7sxaZg0qP6   /Volumes/MobileBackups
/dev/disk2s1    /Volumes/NO
/dev/disk3s1    /Volumes/FLASH

A coluna Montada em tem espaços no nome do arquivo que estão gerando resultados. (ou seja, eu recebo "NO" em vez de "NO NAME") Como faço para que as colunas incluam o nome completo da montagem?

    
por Danny 28.02.2017 / 03:20

1 resposta

0

Como o campo com espaços é a última parte da linha, você pode pegar todos os campos de 9 até o final.

df -Hl | awk '{ mounted=$9; 
                for (i = 10; i <= NF; i++) mounted = mounted " " $i;
                print $1 "\t" mounted }'

Isso funcionará desde que as partes do nome do ponto de montagem sejam separadas por espaços simples - vários espaços e / ou guias serão compactados em um único espaço.

E nenhum dos outros campos pode ter espaços neles.

    
por 03.03.2017 / 19:18

Tags