Categories
bash dividir archivo hjsplit linux script

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