Tengo un archivo de 100 GB y quiero dividirlo en 100 archivos de 1 GB cada uno (por salto de línea)
p.ej
split --bytes=1024M /path/to/input /path/to/output
Para los 100 archivos generados, quiero aplicar gzip / zip a cada uno de estos archivos.
¿Es posible usar un solo comando?
--line-bytes=1024M
.Respuestas:
Utilice "--filtro":
split --bytes=1024M --filter='gzip > $FILE.gz' /path/to/input /path/to/output
fuente
Una línea con un condicional es lo más cerca que puede acercarse.
gzip
solo se ejecutará sisplit
es exitoso debido al condicional&&
que también está entrecd
ysplit
asegurándose de que tambiéncd
sea exitoso. Tenga en cuenta esosplit
ygzip
envíe al directorio actual en lugar de tener la capacidad de especificar el directorio de salida. Puede hacer el directorio, si es necesario:Para volver a armar todo:
fuente
El uso de este comando con
-d
opción le permite generar sufijos numéricos.Archivos generados:
fuente