Category: dividir archivo

  • script bash para dividir archivos

    Si usas linux y quieres dividir un archivo grande para luego unirlo en otra maquina usando cat o hjsplit este script puede servirte; para dividir el archivo podemos usar el comando split, pero hjsplit espera que los archivos estén numerados desde el 001 y split genera archivos empezando desde el 000.

    solucion?, dividir el archivo y luego renombrar las partes generadas.

    1. para saber cuantos archivos se generan, podemos dividir el archivo y ver en cuantas partes se divide usando la opcion verbose y wc:

    parts=`split -d -b 50M -a 3 --verbose archivo-entrada archivo-salida | wc -l`

    2. conociendo cuantos archivos se crearon, podemos renombrar los archivos empesando desde al ultimo:

    while [ $parts -gt 0 ]; do
    # sufijo del archivo
    old_suf=`printf "%03d" "$(($parts-1))`
    # sufijo nuevo
    new_suf=`printf "%03d" "$parts"`
    #renombramos archivo
    mv "$1.$old_suf" "$1.$new_suf"
    # disminuimos $parts
    parts=$((parts-1))
    done

    el script completo lo pueden descargar desde el siguiente enlacce:

    Solo tienen que dejarlo en la carpeta de nautilus-scripts (~/.gnome2/nautilus-scripts), darle permisos de ejecución y listo 🙂

    P.D: este es el segundo script en bash de mas de 3 lineas que hago, así que si encuentran algún error me avisan para ir mejorando u_u