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.