![]() |
|
|
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 |
| cómo ordenar los párrafos de la fecha dentro de un archivo | nabmufti | Programación de scripts de shell y | 1 | 02-13-2008 05:33 PM |
| cómo extraer de los párrafos en el archivo script BASH seguido por el prefijo! ,! y! | nabmufti | Programación de scripts de shell y | 6 | 02-09-2008 08:32 PM |
| filtro de la cadena a partir de un archivo? | varungupta | Programación de scripts de shell y | 11 | 09-17-2007 11:11 PM |
| Filtro de archivos | Dastard | Programación de scripts de shell y | 3 | 09-06-2007 02:50 PM |
| filtrar determinados columna a partir de un archivo | CamTu | Programación de scripts de shell y | 4 | 04-04-2005 07:24 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Hola,
Estoy tratando de filtrar los párrafos que contiene 'CONNECT', 'cambiar' log 'modificar el sistema ". Esto significa decir que el archivo de entrada es: -------------------------------------------------- ----- Jue Jun 7 00:32:31 2006 ACCIÓN: "CONNECT" CLIENTE USUARIO: prdadm TERMINAL DE CLIENTE: Jue Jun 7 00:32:31 2006 ACCIÓN: 'cambiar' log 'modificar el sistema " CLIENTE USUARIO: prdadm TERMINAL DE CLIENTE: Jue Jun 7 00:32:31 2006 ACCIÓN: "CONNECT" CLIENTE USUARIO: prdadm TERMINAL DE CLIENTE: Jue Jun 7 00:32:42 2006 ACCIÓN: "ALTER DATABASE CERRAR NORMAL" CLIENTE USUARIO: prdadm TERMINAL DE CLIENTE: -------------------------------------------------- -------------- Me gustaría que el archivo de salida a: -------------------------------------------------- -------------- Jue Jun 7 00:32:42 2006 ACCIÓN: "ALTER DATABASE CERRAR NORMAL" CLIENTE USUARIO: prdadm TERMINAL DE CLIENTE: -------------------------------------------------- -------------- ¿Tiene usted alguna secuencia de comandos para realizar esta, muchas gracias . |
|
||||
|
Estoy suponiendo que las líneas horizontales no están realmente en el archivo, y sólo se utiliza en lugar de Código:
code tags Código de etiquetas son mejores porque conservar el espaciamiento. Aquí hay una secuencia de comandos: Código:
#!/bin/sh
SHOULDPRINT=1
function do_flush
{
if [[ ${SHOULDPRINT} -eq 1 && ! -z ${OUT} ]]
then
echo "${OUT}"
fi
}
while read LINE
do
if [[ -z ${LINE} ]]
then
do_flush
OUT=""
SHOULDPRINT=1
elif echo "${LINE}" | egrep -q "CONNECT|alter system switch logfile"
then
SHOULDPRINT=0
else
if [[ -z ${OUT} ]]
then
OUT="
${LINE}"
else
OUT="${OUT}
${LINE}"
fi
fi
done
do_flush
|
|
||||
|
Awk un ejemplo de lo mismo: Código:
nawk '
$0 !~ /ACTION : / {
last_line=$0
}
$0 ~ /^ACTION : / && $0 !~ /CONNECT|alter system/ {
print last_line
print $0
getline ; print
getline ; print
}
' your_log_file
|
|
||||
|
Cita:
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|