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
No Comments