Bash Script; processa o número do disco do macOS com base no tamanho da unidade… GREP

1

Eu estou olhando para script alguns comandos CoreStorage nas unidades automaticamente. O problema é que uma das unidades é externa, o que significa que ela pode aparecer montada no sistema como qualquer coisa, do disco 2 ao disco 4, e eu não posso adivinhar com segurança.

No entanto, a unidade sempre será de 5 TB ou 8 TB, conforme listado por diskutil. Então, um assistente de GREP seria capaz de criar uma maneira de pesquisar a lista de diskutil para unidades de 5TB ou 8TB e, se encontrado, usar esse identificador no seguinte comando?

Eu tenho algumas partes do quebra-cabeça, mas não o suficiente para saber como pesquisar por 5 TB ou 8 TB e, em seguida, inserir o número do disco resultante na variável.

/dev/disk0 (internal): 
   #:                       TYPE NAME                    SIZE         IDENTIFIER
   0:      GUID_partition_scheme                         1.0 TB       disk0
   1:                        EFI EFI                     314.6 MB     disk0s1
   2:          Apple_CoreStorage Macintosh HD            900.4 GB     disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB     disk0s3
   4:                  Apple_HFS Golden                  61.0 GB      disk0s4
   5:         Microsoft Reserved                         16.8 MB      disk0s5
   6:       Microsoft Basic Data                         38.0 GB      disk0s6

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE         IDENTIFIER
   0:                  Apple_HFS Mac HD                 +900.0 GB     disk1
                             Logical Volume on disk0s2
                             3CE3A410-049C-42DC-AB48-2191A122F04F
                             Unencrypted

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +1.5 TB       disk2
   1:                        EFI EFI                     209.7 MB     disk2s1
   2:                  Apple_HFS Time Machine Backups    1.5 TB       disk2s2

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   +1.5 TB       disk3

A saída diskutil se parece com a acima. Eu não tenho nenhuma das unidades que eu gostaria de direcionar, mas vamos dizer que eu quero o identificador de disco para a unidade de 1,0 TB, que é disk0 em um

    
por Danny Shepherd 17.06.2017 / 12:07

1 resposta

0

Supondo que sua produção seja semelhante a este exemplo , você pode usar awk para obter a Disk: value da seguinte forma:

diskutil list | awk '/(1.0|5.0|8.0) TB/ {print $NF; exit}'

Isso procurará a primeira linha que diz 1.0 TB ou 5.0 TB ou 8.0 TB e imprime o último campo, que é o ID do disco

Para salvar esse valor em uma variável, use a substituição de comando:

disk_id="$(diskutil list | awk '/(1.0|5.0|8.0) TB/ {print $NF; exit}')"

agora a variável disk_id conterá a saída do comando

    
por 17.06.2017 / 13:59