0 votos

¿Cómo puedo eliminar una subcadena de system_profiler con un posible if then?

En resumen, estoy escribiendo un script que comprobará si un ordenador es un MacBook Pro o un Macbook Air y luego quiero utilizar la salida como una variable.

Utilizando

system_profiler SPHardwareDataType | grep “Model Name”

Puedo conseguir el nombre del modelo: MacBook Pro pero todo lo que necesito es "MacBook Pro" o "Macbook Air"

-oP en grep me da un error. Otra idea era usar find, pero no estoy seguro de cómo usar find si no estoy buscando un archivo real.

1voto

Michael Zhou Puntos 167

Esta es una solución que utiliza awk con system_profiler :

 system_profiler SPHardwareDataType | awk -F ': ' '/Model Name/ { print $2 }'

Cambiamos el separador de campos por : <space> entonces busque una línea con Nombre del Modelo en ella e imprima el segundo campo. O en lugar de utilizar una tubería, utilice la sustitución de procesos para alimentar awk

awk -F ': ' '/Model Name/ { print $2 }' < <(system_profiler SPHardwareDataType)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X