Unix - Copiar Archivo.

 
Vista:

Copiar Archivo.

Publicado por Cristian (2 intervenciones) el 19/06/2006 23:13:15
Me encuentro en la siguiente situacion:
Como fragmentar 1 archivo que contiene 3.000.000 de registros, en 3 archivos que contengan 1.000.000 de registros cada uno?
Existe un comando que me permita copiar una cantidad determinada de registros?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Copiar Archivo.

Publicado por zkoria (5 intervenciones) el 20/06/2006 00:07:32
ke champiñón shaketín!!!...

Si cada registro es una linea entu archivo "file.txt"

%head -1000 file.txt > file_FIRST_MIL_.txt

asi creas un nuevo archivo con los primeros mil y en tucaso
pues ya sería trivial, es decir, ver cuantas veces deberias hacer esto
no se si te soporte directamente 1000000 sino pues con >> al ultimo creas
uno con los fragmentillos ke asi konsigas


ThePowerThisInMind...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar Archivo.

Publicado por Cristian (2 intervenciones) el 21/06/2006 21:59:35
Gracias por responder.
En realidad tendria que alternar comandos head y tail, es decir:
supongamos 3000 registros en 3 archivos de 1000 registros cada uno.

tail -1000 Archivo_origen.txt > Archivo_2001_a_3000.txt (obtengo archivo con los 1000 ultimos registros)

head -2000 Archivo_origen.txt > Archivo_1_a_2000.txt (obtengo los 2000 primeros registros) y despues

tail -1000 Archivo_1_a_2000.txt > Archivo_1001_a_2000.txt (obtengo archivo intermedio)

head -1000 Archivo_1_a_2000.txt > Archivo_1_a_1000.txt (obtengo archivo con los 1000 primeros registros).

que pena, podria ser mas facil, verdad?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar Archivo.

Publicado por Antoni Masana (21 intervenciones) el 23/06/2006 13:12:06
Yo usaria el comando awk es mas simple.

awk '
{ a++ }

a > 2000000 { printf("%s\n", $0); >"file_3" ; next; }
a > 1000000 { printf("%s\n", $0); >"file_2" ; next; }
{ printf("%s\n", $0); >"file_1 ; next; }
'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar