The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > UNIX para usuarios avanzados y expertos
.
google unix.com



UNIX para usuarios avanzados y expertos Experto a experto. Aprender avanzada UNIX, los comandos de UNIX, Linux, Sistemas Operativos, Administración de Sistemas, Programación, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
cómo acceder a los valores de awk / nawk variables desde fuera del awk / nawk bloque? Saniya Programación de scripts de shell y 5 05-13-2008 08:37 AM
nawk y awk sd12 UNIX para usuarios avanzados y expertos 5 05-05-2008 11:46 AM
nawk / ksh ayuda DeltaX Programación de scripts de shell y 0 03-06-2008 03:54 PM
nawk awk-v para kamel.seg Programación de scripts de shell y 2 12-18-2007 07:30 AM
nawk whatisthis Programación de scripts de shell y 3 09-29-2004 02:44 PM

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 01-03-2008
CTAP ctap is offline
Usuario Registrado
  
 

Fecha: julio 2005
Publicaciones: 3
nawk uso

¡He encontrado un comando que imprime x líneas antes y después de una línea que contenga una cadena de búsqueda en un archivo de texto.
El comando es:
-------------------
nawk 'c -> 0, $ 0 ~ s (if (b) para (c \u003d 1 b, c> 1, c -) r de impresión [(N-c +1)% b]; de impresión, c \u003d un r (b) [NR% b] \u003d $ 0) 'b \u003d 2 a \u003d 4 s \u003d "cadena" archivo1

... donde "b" y "uno" son el número de líneas a imprimir antes y después de la cadena "s".
-------------------

Funciona muy bien pero no puedo entender la sintaxis, muy difícil con "el hombre nawk". Es que alguien que pueda comentar esta sintaxis?

Gracias de antemano, un saludo y feliz año nuevo.
  #2 (Enlace permanente)  
Old 01-10-2008
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix demonio
  
 

Fecha: agosto 2001
Ubicación: Ashburn, Virginia,
Mensajes: 9.131
'c -> 0, $ 0 ~ s (if (b) para (c \u003d 1 b, c> 1, c -) r de impresión [(N-c +1)% b]; de impresión; c \u003d a b (r) [NR% b] \u003d $ 0) '
tiene 3 estados de patrones de acción:
1) c -> 0;
2) $ 0 ~ s (if (b) para (c \u003d 1 b, c> 1, c -) r de impresión [(N-c +1)% b]; de impresión; c \u003d a)
3) b (r [NR% b] \u003d $ 0)

La primera de ellas no tiene una acción explícita la acción es simplemente imprimir el registro. Pero en este caso el punto y coma es necesario para que no se ejecuta en el segundo staement. La segunda tiene una declaración explícita de acción que se encuentra en tirantes y las abrazaderas son suficientes para separarlo de la tercera. Ahora consideremos estas declaraciones en el orden inverso ...

3) b (r [NR% b] \u003d $ 0)
El patrón es b, que está preguntando si b es igual a cero. Si b es distinto de cero tenemos que guardar los registros en caso de que necesitemos más adelante. Pero si b es cero, podemos omitir este puesto no queremos "antes de" registros que se muestra. Si b es, digamos, 5, siempre tendremos los últimos 5 registros en el r matriz.

2) $ 0 ~ s (if (b) para (c \u003d 1 b, c> 1, c -) r de impresión [(N-c +1)% b]; de impresión; c \u003d a)
El patrón $ 0 ~ s, simplemente le pregunta si el registro coincide con los criterios de búsqueda se almacenarán en la sección Si es así, y si b es distinto de cero, que imprima los registros que guarda en el paso 3 anterior. Luego imprimir el registro actual. C \u003d a continuación, establece el siguiente paso que se explica ...

1) c -> 0;
c se establece en un (número de "después de" registros) cuando encuentra una coincidencia. El c - c parte disminución después de usarlo. Y la usamos para ver si es superior a cero. Esta es la forma en que el "después" de los registros se imprimen.

Última edición por Perderabo; al 01-17-2008 08:34 AM.. Motivo: corregir algunos errores ortográficos
  #3 (Enlace permanente)  
Old 01-17-2008
CTAP ctap is offline
Usuario Registrado
  
 

Fecha: julio 2005
Publicaciones: 3
gracias Perderabo

Yo entiendo mejor! Y tal vez "NR% b" significa "NR modulo b" ...

Voy a tomar más tiempo para analizar, pero gracias a una gran cantidad
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 01:39 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