lunes, 3 de enero de 2011

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

2 Responses to “script bash para dividir archivos”

Anónimo dijo...

un script buenísmo. me ha resultado de mucha ayuda encontrarlo.

muchas gracias por compartirlo!

sney2002 dijo...

Me alegra que haya sido de ayuda.

Deja una respuesta

 
© 2009 NovatoZ. All Rights Reserved | Powered by Blogger
Design by psdvibe | Bloggerized By LawnyDesignz