Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Básico » Buscar dos cadenas al mismo tiempo en un texto plano  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2012-01-03 16:02 @710

Perlero Nuevo
Registrado: 2010-10-17 17:53 @786
Ubicación: Chile
Mensajes: 38
Buscar dos cadenas al mismo tiempo en un texto plano  RESUELTO
Estimados,

Esperando que disfruten mucho este año nuevo, les quiero realizar la siguiente consulta:

Necesito buscar dos cadenas en un texto plano: “CRITICAL” y “DOWN”.

Para esto estoy usando los comandos:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. perl -ne 'print if /CRITICAL/' texto.txt

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. perl -ne 'print if /DOWN/' texto.txt


Quiero saber si es posible ejecutar esa misma sentencia en una sola línea, ejecutar un comando que me permita buscar dos cadenas en un texto plano.

Desde ya agradezco su respuesta.
Feliz año nuevo

Saludos


Nota 2012-01-03 16:27 @727
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Buscar dos cadenas al mismo tiempo en un texto plano
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. perl -ne 'print if /CRITICAL/ or /DOWN/' texto.txt

_________________
JF^D Perl programming


Nota 2012-01-03 16:51 @744

Perlero Nuevo
Registrado: 2010-10-17 17:53 @786
Ubicación: Chile
Mensajes: 38
Re: Buscar dos cadenas al mismo tiempo en un texto plano
Gracias, el comando funciona perfecto, pero se me presento otro problema:

Mi código es el siguiente:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #! /usr/bin/perl
  2. #02-01-2012
  3. #LOG ALERTAS
  4. use strict;
  5. system('perl -ne 'print if /CRITICAL/ or /DOWN/' /root/LOG_alertas > alert');


Al parecer tengo un error de sintaxis ya que al ejecutar el script me arroja el siguiente error:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
String found where operator expected at ./crea_log line 5, near "/DOWN/' /root/LOG_NAGIOS1 > LOG_NAGIOS'"
        (Missing operator before ' /root/LOG_NAGIOS1 > LOG_NAGIOS'?)
syntax error at ./crea_log line 5, near "'perl -ne 'print"
Execution of ./crea_log aborted due to compilation errors.


Nota 2012-01-03 17:16 @761
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Buscar dos cadenas al mismo tiempo en un texto plano
¿¿¿Ejecutar un perl dentro de otro perl??? ¡¡¡Qué feo!!!

Es mejor que hagas la operación de: abrir fichero origen en lectura, abrir el fichero destino en escritura, hacer un bucle por las líneas, y las que cumplan con la condición, sacarlas hacia el fichero destino. Cierras los ficheros, y listo.

O si no... no usar Perl:
Syntax: [ Download ] [ Hide ]
Using bash Syntax Highlighting
  1. #!/bin/bash
  2. #02-01-2012
  3. #LOG ALERTAS
  4. perl -ne 'print if /CRITICAL/ or /DOWN/' /root/LOG_alertas > alert
  5.  


También puedes usar grep() (no probado):
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use autodie;
  3. open $in,  '<', '/root/LOG_alertas';
  4. open $out, '>', 'alert';
  5. print $out grep { /CRITICAL/ or /DOWN/ } <$in>;
  6. close $out;
  7. close $in;


Y de más formas... pero no, por favor, perl dentro de perl :(

_________________
JF^D Perl programming


Nota 2012-01-10 14:37 @650

Perlero Nuevo
Registrado: 2010-10-17 17:53 @786
Ubicación: Chile
Mensajes: 38
Re: Buscar dos cadenas al mismo tiempo en un texto plano
Muchas gracias, lo primero funcionó perfecto.


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO