![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| UNIX for Dummies Preguntas y Respuestas Si no está seguro de que para publicar un UNIX o Linux cuestión, puesto que aquí. Todos los novatos en Linux, UNIX y bienvenida! |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| División de archivos mediante Csplit | savitha | UNIX for Dummies Preguntas y Respuestas | 7 | 12-01-2007 11:55 AM |
| Dividir un archivo en 2 Ficheros | dummy_needhelp | Programación de scripts de shell y | 7 | 11-04-2007 07:36 PM |
| número total de archivos que tienen "aaa" en los archivos cuyos nombres de archivo _bbb * * | sudheshnaiyer | UNIX for Dummies Preguntas y Respuestas | 1 | 08-16-2007 03:34 PM |
| Dividir un archivo en 2 o más archivos | bobo | UNIX for Dummies Preguntas y Respuestas | 4 | 01-16-2006 05:15 PM |
| awk comando para dividir en 2 archivos | m_subra_mani | Programación de scripts de shell y | 3 | 12-13-2005 05:13 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
dividir archivos en determinado número de archivos de salida
Hola a todos,
Tengo algunos grandes archivos de texto que tengo que dividir en un número específico de archivos de igual tamaño. Por lo que sé (y en realidad no sé que gran parte ) De la división comando sólo le permite especificar el número de líneas o bytes. Los archivos son de un tamaño diferente, por lo que el número de líneas difieren también.Yo uso el siguiente código para ver cuántas líneas de cada fichero de salida debe ser (1 / 50 del documento original): y \u003d `wc | awk '(print $ x/50)' | awk-F. '(if ($ 2> \u003d 1) (print $ 1 +1) else (print $ 1))' ` echo $ y El problema es que no puedo utilizar esta variable $ y como insumo para la división de comando como esta: dividir $ x-d-l $ y división / $ x Simplemente no funciona. ¿Alguien sabe una manera de pasar el valor de la variable $ y en la división de mando? O ¿alguien tiene una mejor forma de resolver todo el problema? Gracias de antemano! |
|
||||
|
Realmente no es claro por qué no puede usar la variable. La forma en que está ahora, no creo que contiene un valor útil (lo que hace el eco impresión para ti?), pero por el que se fijan las secuencias de comandos por lo que suena como funciona el mejor plan a menos que se puede explicar la razón por la que "simplemente no funciona". Suponiendo que $ x es el nombre del archivo que está a punto de dividirse, intente algo como esto en lugar. Código:
y=`wc -l < $x | awk '{ print 1+int($1/50) }'`
Puse en la adición de uno sobre la teoría de que esto debería hacer algo vagamente útil, incluso con archivos que son demasiado pequeños, con una ligera tendencia a hacer el último archivo en la serie más pequeña que las otras. (Tal vez dividir por 49 en lugar de compensar?) |
|
||||
|
El eco me da un número, que se supone que haga.
La adición se usa para redondear los números: 232 se convierte en 231,2, 231,0, pero se mantiene 231. Lo he probado de nuevo con la variable $ x se define explícitamente y luego funcionó. Por lo tanto, el problema parece ser de $ x. (lo siento, no he tenido mucho sueño anoche ) Esto cambia mi pregunta:Si quiero usar mi script con el texto original como el archivo de entrada (como esto: sh test.sh <fichero), ¿cómo puedo llamar en el archivo original en el interior de la secuencia de comandos? Yo, evidentemente, pensó que los $ x en "dividir $ x-d-l $ y división / $ x" se sustituye por "fichero.txt", pero no lo es. Última edición por Migrainegirl; al 05-13-2008 08:53 AM.. |
|
||||
|
Los parámetros están en $ 1 $ 2 $ 3, etc, pero si se invoca el script con la redirección, no hay ningún parámetro de posición, y no el nombre del archivo, sólo la entrada estándar. Código:
vnix$ ./myscript file.txt oops # inside myscript, $1 is "file.txt" and $2 is "oops" vnix$ ./myscript # inside myscript, no file name is known; input is from standard input (terminal) vnix$ ./myscript <file.txt # again, inside myscript, no file name is known; input is redirected to come from file.txt Editado por última época; al 05-13-2008 09:02 AM.. Motivo: Añadir esclarecedor (?) Ejemplo |
|
||||
|
¡Gracias!
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|