![]() |
|
|
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 |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Dividir un archivo grande y añadir encabezado y pie de página a cada archivo | ashish4422 | Programación de scripts de shell y | 1 | 04-15-2008 07:12 AM |
| Dividir un archivo sin patrón - Split, Csplit, Awk | madhunk | UNIX for Dummies Preguntas y Respuestas | 10 | 12-17-2007 12:57 PM |
| dividir el nombre de archivo | rinku | Programación de scripts de shell y | 1 | 05-28-2007 02:47 AM |
| Necesidad de dividir el archivo | getdpg | Programación de scripts de shell y | 11 | 09-04-2006 04:08 AM |
| Cómo dividir el archivo por archivo dentro de las etiquetas? | spookyrtd99 | Programación de scripts de shell y | 1 | 07-31-2006 01:50 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Dividir el archivo usando awk
Estoy tratando de leer un archivo y dividir el archivo en varios archivos. I necesidad de crear nuevos archivos con diferentes conjunto de líneas del archivo original. es decir, el primer archivo de salida puede contener 10 líneas y 100 líneas de la segunda y así sucesivamente. El criterio es que las líneas entre dos líneas que comienzan con algunos caracteres (variables)
por ejemplo. Un ejemplo de archivo de entrada DOC100 aaaaaa bbbbbb cccccccc FIN DOC200 ddddddd eeeeeee FIN Tengo que enviar las líneas entre DOC100 y END para algo.1 y las líneas entre DOC200 y el próximo fin de algo.2 Pensé que podía hacerlo usando awk y he intentado el comando siguiente, pero no funcionó. k \u003d $ archivo DOC grep | cut-c4-6 awk-v cn \u003d $ k "/ DOC $ cn /, / FIN / (print $ 0) '$ fichero> $ OUTFILE ¿Puede alguien me ayude en esto? Gracias |
|
||||
|
Ygor y zazzybob Gracias por su ayuda. Pero veo un problema con cada uno de sus scripts.
zazzybob la secuencia de comandos - En primer lugar tengo un archivo de datos de longitud fija que tengo que dividir. La secuencia de comandos crea los archivos separados con los datos, sino que hace caso omiso de los espacios en el campo, significa que concatena los campos dejando fuera de los espacios en ellos. Ygor del guión - El script crea un único archivo denominado DOC con los datos entre el último DOC / END. Sin embargo, pone los datos como lo que es en el archivo de entrada, que es una buena señal. |
|
|||||
|
No he leído algo sobre los nombres de archivo como "Doc.1" antes. Prueba este lugar ... Código:
awk '/^DOC/{f="doc."++d} f{print > f} /^END/{close f; f=""}' infile
$ Doc cabeza -1000000 .* \u003d\u003d> Doc.1 <\u003d\u003d DOC100 aaaaaa bbbbbb cccccccc FIN \u003d\u003d> Doc.2 <\u003d\u003d DOC200 ddddddd eeeeeee FIN |
|
||||
|
zazzybob el guión funciona bien ahora.
Ygor la secuencia de comandos aún tienen un problema. Crea archivos de salida separado pero ahora se pone líneas que comienzan con DOC & FIN también en los archivos de salida. Sólo necesitamos los datos entre las líneas. Agin Gracias por la ayuda. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|