Provavelmente, existe uma maneira mais inteligente de fazer isso tudo no awk, mas Guido está no caminho certo ao enviar stderr para / dev / null para se livrar da mensagem 0516-1396
. Aqui está um pipeline que usa sed
para imprimir apenas as linhas entre "Logical:" e "Physical", em seguida, usa sed novamente para excluir a linha "Physical" final e para excluir o texto "Logical:" antes de usar o awk para imprimir a segunda coluna:
lqueryvg -Atp hdiskpower13 | \
sed -n '/^Logical:/,/^Physical:/ p' | \
sed '/^Physical:/d; s/^Logical://' | \
awk '{print $2}'
Aqui está uma solução totalmente sem-graça que ainda é bastante bruta:
lqueryvg -Atp hdiskpower13 | \
awk '/^Logical:/,/^Physical/ {
if (! /^Physical:/) {
gsub("Logical:", "", $0);
print $2 }}'