Разобрать вывод df по столбцам
У меня возникают трудности при извлечении файловой системы и монтирования на столбцах из вывода 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 ответ
Поскольку поле с пробелами является последней частью строки, вы можете просто захватить все поля с 9 до конца.
df -Hl | awk '{ mounted=$9;
for (i = 10; i <= NF; i++) mounted = mounted " " $i;
print $1 "\t" mounted }'
Это будет работать до тех пор, пока части имени точки монтирования просто разделены одним пробелом - несколько пробелов и / или вкладок будут сжаты в один пробел.
И ни в одном из других полей не может быть пробелов.