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
cómo mover el puntero a un archivo especial en la línea C user_prady Programación de Alto Nivel 7 03-27-2008 12:32 AM
devolver la línea anterior user_prady Programación de scripts de shell y 12 12-18-2007 07:37 AM
la manera de ir en la línea anterior vim useless79 UNIX para usuarios avanzados y expertos 2 09-16-2007 08:10 AM
buscar y recuperar la línea anterior en el expediente paulsew Programación de scripts de shell y 2 02-23-2007 08:04 AM
Del día anterior, fecha en Perl? rajus19 Programación de scripts de shell y 4 07-18-2006 12:40 AM

 
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 01-24-2008
tqlam tqlam is offline
Usuario Registrado
  
 

Fecha: julio 2004
Publicaciones: 12
Perl cómo mover el puntero a la línea anterior en un archivo txt?

Tengo un archivo de texto que tiene bloques de texto. Cada bloque comienza con # # # y termina con End_ # # #.
Escribí un perl secuencia de comandos para buscar una cadena de la línea 2 (hacer caso omiso de cualquier línea comienza con # # #) de cada bloque
si corresponde, es necesario que todo el bloque de impresión. Según el archivo de entrada a continuación, se imprimirán los bloques # 02, # 04, # 05.
Aquí está mi pregunta, no tengo problemas que coinciden con el SEARCH_STR, pero una vez combinados, ¿cómo puedo volver a las líneas anteriores?
por ejemplo, en bloque # 02, acompañado en la línea 3, pero necesito imprimir las líneas 1 y 2.

Gracias de antemano por cualquier ayuda!

Mi script:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
#! / 46020/local/bin /perl -w
#
if ($ # ARGV! \u003d 0) (
print "Usted debe proporcionar un criterio de búsqueda. \ n";
salida;
)
my $ query \u003d $ ARGV [0];
my $ ENTRADA \u003d "/ mypath / inputFILE.txt";
my $ line;
my $ tag \u003d 0;
my @ results \u003d ();

open (FILE, "<$ INPUT") or die "No se puede abrir" $ INPUT "file: $!";
while ($ linea \u003d <FILE>) (
next if ($ linea \u003d ~ / ^ # [0-9] [0-9] .* - / | | $ linea \u003d ~ / ^ \ s *$/);
if ($ linea \u003d ~ / $ consulta / i) (
tag \u003d $ 1;
)
if ($ linea \u003d ~ / ^ # End_ / & & $ etiqueta \u003d\u003d 1) (
Pulsar (@ resultados, $ linea) if ($ tag \u003d\u003d 1);
$ tag \u003d 0;
)
Pulsar (@ resultados, $ linea) if ($ tag \u003d\u003d 1);
)
close (FILE);
print "@ resultados \ n";
salida;


InputFile:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
# 01 - bloque de línea de salida aquí
algún texto aquí
más texto aquí
más líneas
más líneas
más líneas
End_ # 01

# 02 - bloque de línea de salida aquí
algún texto aquí
esta línea contiene las SEARCH_STR y algo
más líneas
más líneas
End_ # 02

# 03 - bloque de línea de salida aquí
algún texto aquí
más texto aquí
más líneas
más líneas
más líneas
End_ # 03

# 04 - bloque de línea de salida aquí
algún texto aquí
más líneas
más líneas
la SEARCH_STR está aquí y algo
algún texto aquí
más líneas
más líneas
más líneas
End_ # 04

# 05 - bloque de línea de salida aquí
algún texto aquí
más líneas
la SEARCH_STR está aquí y algo
más líneas
End_ # 05


# 06 - bloque de línea de salida aquí
algún texto aquí
más texto aquí
más líneas
más líneas
más líneas
End_ # 06
 

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 11:45 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