Pergunta

Usando OS X, eu preciso de um script uma linha de olhar para um hostname mac cliente como: 12345-BA-PreSchool-LT.local

Onde os 5 primeiros dígitos são um número de série de ativos, e os hífens separar um código de unidade de negócios a partir de um nome de departamento seguido por algo como 'LT' para denotar um laptop.

Eu acho que preciso para ecoar o nome do host e usar uma combinação de sed, awk e talvez cortado para remover caracteres para me deixar com:
"BA PreSchool"

Qualquer ajuda muito apreciada. Isto é o que eu tenho até agora:

echo $HOSTNAME | sed 's/...\(...\)//' | sed 's/.local//'
Foi útil?

Solução

 echo "12345-BA-PreSchool-LT.local" | cut -d'-' -f2,3 | sed -e 's/-/ /g'

(Não em OSX, então não tenho certeza se corte é definido)

Outras dicas

Eu gosto de manter as coisas simples:)

Você poderia fazê-lo com apenas corte:

echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3
BA-PreSchool

Se você quiser remover o hífen você pode usar tr

echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3 | tr "-" " "
BA PreSchool

Como cerca

echo $HOSTNAME | awk 'BEGIN { FS = "-" } ; { print $2, $3 }'

Awk pode resolver a sua pergunta com facilidade.

echo "12345-BA-PreSchool-LT.local" | awk -F'-' '$0=$2" "$3'
BA PreSchool
bash$ string="12345-BA-PreSchool-LT.local"
bash$ IFS="-"
bash$ set -- $string
bash$ echo $2-$3
BA-PreSchool
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top