Você simplesmente precisa remover o par de barras invertidas:
df -hl | grep '/dev/disk1' | awk '{sub(/%/, "");print $5}'
A função sub
do awk está bem documentada para substituir a primeira ocorrência do padrão passada como primeiro parâmetro pela string passada como segundo parâmetro.
Aqui, o padrão é o sinal de porcentagem e a string de substituição é uma string vazia. Como está escrito na sua pergunta, o segundo parâmetro é uma string inválida, então awk
reclama e sai. A instrução awk
corrigida está removendo o %
que aparece em sua entrada e exibe o quinto campo.
Observe que o comando grep
é redundante aqui, pois awk
é capaz de fazer a filtragem sozinho, portanto, o comando pode ser simplificado em:
df -hl | awk '/\/dev\/disk1/ {sub(/%/, "");print $5}'