Я пытаюсь изучить awk в данный момент, и поэтому я пытаюсь сделать это с помощью команды disk utility
.
Вот вывод, когда я запускаю Disk Utility list disk0
/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 145.4 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 4: Linux Filesystem 48.0 GB disk0s4 5: Microsoft Basic Data WINDOWS 38.0 GB disk0s5 6: Linux Swap 18.8 GB disk0s6
Теперь, если я запускаю diskutil list disk0 | awk 'NR > 2 {print}'
Я получаю это как вывод.
0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 145.4 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 4: Linux Filesystem 48.0 GB disk0s4 5: Microsoft Basic Data WINDOWS 38.0 GB disk0s5 6: Linux Swap 18.8 GB disk0s6
Как вы можете видеть, результат соответствует ожиданиям. Проблема сейчас в том, что когда я пытаюсь напечатать 2, 3 и 4 доллара, иногда на выходе выводится «HD», когда он должен печатать размер, и другие подобные проблемы.
diskutil list disk0 | awk 'NR > 2 {print $1}'
0: 1: 2: 3: 4: 5: 6:
Ожидаемый результат
diskutil list disk0 | awk 'NR > 2 {print $2}'
GUID_partition_scheme EFI Apple_HFS Apple_Boot Linux Microsoft Linux
Ожидаемый результат
GUID_partition_scheme EFI Apple_HFS Apple_Boot Linux Filesystem Microsoft Basic Data Linux Swap
Как вы можете видеть выходные данные команды, как ожидалось, до файловой системы Linux. Это из-за пробелов в слове?
Теперь это влияет на все остальное, например, после него.
diskutil list disk0 | awk 'NR > 2 {print $3}'
*251.0 EFI Macintosh Recovery Filesystem Basic Swap
когда это должно показать
EFI Macintosh HD Recovery HD Windows
Как бы получить AWK для форматирования, как я ожидал?