The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

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
sed consulta gopsman Programación de scripts de shell y 4 02-03-2009 02:41 AM
Y en la consulta SQL Lindarella Programación de scripts de shell y 3 10-09-2006 04:43 PM
En consulta awk raguramtgr UNIX for Dummies Preguntas y Respuestas 1 08-27-2004 11:00 AM
RPM consulta silvaman UNIX para usuarios avanzados y expertos 1 08-15-2003 07:56 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 12-07-2006
grinder182533 grinder182533 is offline
Usuario Registrado
  
 

Fecha: noviembre 2006
Puestos: 17
sed consulta

Tengo una serie de carpetas / temp / un / temp / b / temp / c

En las carpetas a, b, yc, tengo archivos
a1.txt ... ... .... a20.txt
b1.txt ... ... .... b40.txt y
c1.txt ... ... .... c60.txt

Cada archivo tiene el mismo formato de datos: --

Línea 1 AAAAA aaaa
Línea 2 BBB bbbbbb
Línea 3 CCCC cccccc
Etc etc

Tengo que escribir un sed script que irá a través de todos los archivos y reformatear los datos así: --

Línea 1 AAAAA aaaa
Línea 2 BBB
Línea 3 X bbbbbb
Línea 4 CCCC cccccc
Etc etc

Así que tengo que insertar un CR / LF en la línea 2 la posición 4,
crear una nueva línea 3, con una constante de texto (X) y el valor de lo que estaba a la derecha de la anterior línea 2 (bbbbbb)
y pasar el resto de líneas de una línea hacia abajo.

¿Alguien puede ayudar por favor?
No sé sed muy bien, y no en todos los awk.
  #2 (Enlace permanente)  
Old 12-07-2006
blowtorch's Avatar
soplete blowtorch is offline Forum Advisor  
Defensor
  
 

Fecha: diciembre 2004
Ubicación: Singapur
Puestos: 2.350
Funciona esto?
Código:
awk '{if(NR==2) print $1,"\nX",$2; else print}' filename > filename.new
mv filename.new filename
Ejecutar a través de un bucle en cada archivo.

Tenga en cuenta que he asumido que el texto en sus archivos es justo como ustedes lo están demostrando (exactamente el mismo número y la ubicación de los caracteres de espacio para ser específicos). Incluso si no está usted solo necesita cambiar el awk un poco.
  #3 (Enlace permanente)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: marzo 2006
Lugar: Bangalore, India
Mensajes: 1.398
SED solución

Código:
cd /a
for file in *
do
    sed "2 s/\(...\).\(.*\)/\1\\
    X \2/" $file > tmp
    mv tmp $file
done
  #4 (Enlace permanente)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Usuario Registrado
  
 

Fecha: noviembre 2006
Puestos: 17
sed solución

Gracias Anbu23
Cuando me envió el día de ayer, he simplificado mi problema, pensando que podía seguir su lógica, y aplicarlo a mi problema.
De hecho, es la línea 5 posición 32 antes de que el CR / LF se inserta.
La nueva línea 6 contendrá texto fija la posición de 1 a 31 inclusive, (X)
y la posición 32 a 34 desde la línea 5 se llega a las mismas posiciones en la línea 6.
He intentado
sed "5 s / \ (... \). \ (.* \) / \ 1 \ \
X \ 2 / "$ archivo> tmp
pero eso todavía derramado después de 3 caracteres.

He intentado
sed "5 s / \ (............................. \). \ (.* \) / \ 1 \ \
X \ 2 / "$ archivo> tmp
pero tiene un error de sintaxis.
Espero que pueda ayudar más.
Gracias
  #5 (Enlace permanente)  
Old 12-08-2006
anbu23 anbu23 is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: marzo 2006
Lugar: Bangalore, India
Mensajes: 1.398
Anteriormente usted dijo que después de la primera unos pocos caracteres en la línea tiene que ser movido a la siguiente línea con X. Pero ahora le está diciendo que usted necesita carácter inicial y X y en el resto de características del nuevo line.I no soy capaz de llegar usted.
¿Me puede dar ejemplo?
  #6 (Enlace permanente)  
Old 12-08-2006
grinder182533 grinder182533 is offline
Usuario Registrado
  
 

Fecha: noviembre 2006
Puestos: 17
sed ejemplo

Hola Anbu23

de entrada

Ref: 12345678 ^ M
Fecha de valor: 28-mayo-2006 ^ M
Una de débito / c: 54321235 - H ^ abcdef
Cliente: 100210547 - abcdef ^ M
Débito Monto: US $ 9999999999,00 ^ M
Descripción: alambre para Wxxxxxx ^ M
^ M
Tipo de cambio: 1,00000 M ^
etc etc

debe convertirse en

Ref: 12345678 ^ M
Fecha de valor: 28-mayo-2006 ^ M
Una de débito / c: 54321235 - H ^ abcdef
Cliente: 100210547 - abcdef ^ M
Débito Monto: 9999999999,00 ^ M
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ^ M USD
Descripción: alambre para Wxxxxxx ^ M
^ M
Tipo de cambio: 1,00000 M ^
etc etc

cortar y pegar ha compensado la pantalla anterior,
pero antes de mi partida 5 posición 31 es correcta.
Por favor, también tenga en cuenta que hay muchos registros en cada archivo,
y todos tienen que ser reordenada.
Muchas gracias de nuevo
Yo agradezco su apoyo.
  #7 (Enlace permanente)  
Old 12-08-2006
cskumar cskumar is offline
Usuario Registrado
  
 

Fecha: octubre 2005
Puestos: 67
tratar este

awk '(if (partido ($ 0, "US $")) (print $ 1 $ 2 $ 3, "\ nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", $ 4) print $ 0)' fichero> nuevofichero

Espero USD vendrá solamente en débito Monto: campo.

Recuerdos,
cskumar
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 03:40 AM.


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