Eu não tenho um forro para você, mas o conceito chave aqui é armazenar o campo até que você tenha coletado todos eles e depois imprimi-los em uma linha. Além disso, uma linha em branco terá o número de campos (NF) igual a zero.
Código:
#!/bin/awk -f
BEGIN {FS = " : "; OFS = " - "}
NF > 0 {
gsub(/[ ]+$/, "", $1)
a[$1] = $2
}
NF == 0 {dump()}
END {dump()}
function dump() {
print a["ComputerName"], a["Path"], a["VhdFormat"], a["VhdType"]
}
Resultados:
ACD-VMH04 - D:\HYPER-V\VMDEV01\Virtual Hard Disks\f9314d7d-5d2d-11e0-8feb-806e6f6e6963_2012-06-29T153327.vhd - VHD - Dynamic
ACD-VMH04 - D:\HYPER-V\VMDEV01\Virtual Hard Disks\C_2012-06-29T153327.vhd - VHD - Dynamic