En ocasiones se plantean problemas que se pueden solucionar con una simple orden o con algún aplicativo. Pero también puede suceder que no te acuerdes de la orden y no quieras instalar software alguno. En ese caso es posible acudir a el siempre omnipresente bash.
Por ejemplo, en caso de que sea necesario obtener ficheros .vcf (vcard) individuales de un único archivo, y no que no queramos hacer uso de comandos ultracomplejos, podemos programar un sencillo script bash.
El siguiente script, por supuesto, se puede parametrizar, controlar errores, bla, bla, bla.
# Script que tomando como origen un único fichero .vcf, crea tantos archivos como vcards individuales
# contenga. Hace uso de que el comienzo y final de cada contacto está acotado con una cadena.
# En VECES se almacena la candidad de vcards individuales
VECES=`grep -n 'END:VCARD' ~/scripts/svcards/10000.vcf | wc -l`
echo
echo Creando $VECES ficheros VCARD
echo
# Bucle que recorre las VCARDs.
# Con head se obtiene el primer vcard y con tail el resto que almacena en el mismo archivo
# origen.
i=0
while [ $i -lt $VECES ]; do
echo Generando VCARD: $i
PRIMER_FINAL=`grep -n 'END:VCARD' -m 1 ~/scripts/svcards/10000.vcf | cut -f1 -d':'`
FIN=`wc -l ~/scripts/svcards/10000.vcf | cut -f1 -d' '`
DIFF=`echo $FIN-$PRIMER_FINAL | bc`
echo $PRIMER_FINAL
echo $FIN
echo $DIFF
head -$PRIMER_FINAL ~/scripts/svcards/10000.vcf > $i.vcf
tail -n $DIFF ~/scripts/svcards/10000.vcf > ~/scripts/svcards/10000aux.vcf
cp --preserve ~/scripts/svcards/10000aux.vcf ~/scripts/svcards/10000.vcf
let i+=1
done
echo
echo Generación de VCARDs finalizada