The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 07-20-2004
pvar pvar is offline
Usuario Registrado
  
 

Fecha: febrero 2004
Ubicación: MI, EE.UU.
Publicaciones: 12
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
  #2 (Enlace permanente)  
Old 07-20-2004
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Registrado Geek
  
 

Fecha: diciembre 2003
Ubicación: Melbourne, Australia
Puestos: 2.100
Un script de este tipo de nombre de los archivos out.100, out.200 donde el número corresponde a lo que sigue "DOC"


Código:
#!/bin/sh

while read line
do
   if echo $line | grep DOC; then
       line_no=`echo $line | sed 's/DOC\([0-9]*\)/\1/g'`
   elif echo $line | grep END; then
       : #ignore
   else
       echo $line >> out.$line_no
   fi
done < file.txt

Cuando archivo.txt contiene sus datos.

Esta es una rápida secuencia de comandos y no hay margen de mejora, pero usted consigue la idea.

¡Salud!
ZB
  #3 (Enlace permanente)  
Old 07-21-2004
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderador
  
 

Fecha: octubre 2003
Ubicación: -31.96,115.84
Mensajes: 1.409
Uso de awk ..
Código:
awk '/^DOC/{f=$1} f{print > f} /^END/{close f}' infile

  #4 (Enlace permanente)  
Old 07-21-2004
pvar pvar is offline
Usuario Registrado
  
 

Fecha: febrero 2004
Ubicación: MI, EE.UU.
Publicaciones: 12
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.
  #5 (Enlace permanente)  
Old 07-21-2004
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Registrado Geek
  
 

Fecha: diciembre 2003
Ubicación: Melbourne, Australia
Puestos: 2.100
Para resolver el problema con el script me envió, acaba de poner las comillas alrededor de "$ line", thusly

Código:
echo "$line" >> out.$line_no

Que preserve el espacio en blanco

¡Salud!
ZB
  #6 (Enlace permanente)  
Old 07-21-2004
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderador
  
 

Fecha: octubre 2003
Ubicación: -31.96,115.84
Mensajes: 1.409
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
  #7 (Enlace permanente)  
Old 07-21-2004
pvar pvar is offline
Usuario Registrado
  
 

Fecha: febrero 2004
Ubicación: MI, EE.UU.
Publicaciones: 12
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.
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 02:51 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0