4

У меня возникают трудности при извлечении файловой системы и монтирования на столбцах из вывода df.

$df -Hl

Результаты в

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

Добавление выбора столбца

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

результаты в

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

В столбце My Mounts on есть пробелы в имени файла, которое отбрасывает результаты. (т.е. я получаю "НЕТ" вместо "НЕТ ИМЯ") Как получить в столбцах полное имя монтирования?

1 ответ1

0

Поскольку поле с пробелами является последней частью строки, вы можете просто захватить все поля с 9 до конца.

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

Это будет работать до тех пор, пока части имени точки монтирования просто разделены одним пробелом - несколько пробелов и / или вкладок будут сжаты в один пробел.

И ни в одном из других полей не может быть пробелов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .