Você pode usar o bash "Pattern substitution" (procure por essa string na man page para detalhes).
filename=${pid// /}.${vid// /}.tar.gz
A barra dupla significa substituir todas as ocorrências do padrão. O espaço entre a barra dupla e a próxima barra é o padrão. O padrão de substituição é após a última barra, que neste caso está vazia. Você pode remover a barra final, mas eu prefiro isso para clareza, pois ele coloca o espaço entre parênteses.