si ya estás usando AWK, ¿cuál es el problema? $3 debería tener la cadena completa "Componente virtual", ¿qué método estás usando?
 
La forma correcta es sobreescribir la variable IFS y usar un while:   
Código SH:
Ver originalIFS="|" while read VAR1 VAR2 VAR3; do
    ...
done <archivo_de_entrada
  
O awk, pero también modificando el separador:   
Código SH:
Ver originalawk -F"|" '{ print $1 "-" $2 "-" $3 }'
  
  
Saludos.