![]() |
|
|
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 |
| UNIX for Dummies Preguntas y Respuestas Si no está seguro de que para publicar un UNIX o Linux cuestión, puesto que aquí. Todos los novatos en Linux, UNIX y bienvenida! |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Ordenar archivos por orden alfabético y numérico | mrodrig | UNIX for Dummies Preguntas y Respuestas | 2 | 05-19-2008 10:46 AM |
| Ordenar un archivo línea por línea por orden alfabético | H2OBoodle | Programación de scripts de shell y | 11 | 02-11-2008 07:27 AM |
| Cómo ordenar los valores decimales en bash | ahjiefreak | Programación de scripts de shell y | 1 | 01-21-2008 09:25 AM |
| la búsqueda de valores específicos en un archivo dentro de un | Gerry405 | UNIX for Dummies Preguntas y Respuestas | 3 | 11-21-2005 11:37 AM |
| Como ordenar los archivos sobre la base de valores predeterminados.? | p_prathaban | Programación de scripts de shell y | 2 | 02-17-2004 11:39 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo |
Calificación:
|
Modos de visualización |
|
|
|
||||
|
Cómo ordenar alfabéticamente después de encontrar los valores
Tengo una lista de personas en un uso diario y la necesidad de imprimir los nombres y números de teléfono de las personas con más de 500 conexiones. También me gustaría mostrar estos nombres en orden alfabético.
Tengo su conjunto acceso a una variable llamada total. Hasta el momento, tengo muy poco en mi awk script para hacerlo: FS \u003d ":" (if (total> 500) print $ 1, $ 2) ($ 1 que tanto nombre y apellido, $ 2 es el número de teléfono) Hay más en la secuencia de comandos que esto, pero es la parte pertinente. Esto sólo se imprime una de sus nombres, lamentablemente, a pesar de mi archivo de datos tiene claramente otros con los totales> 500. Cualquier consejo o punteros aquí? Gracias! |
|
||||
|
Suena como el problema sería en otras partes de la lógica. Total se calculará por una vez para todo el archivo y lo ejecuta una y otra vez para cada usuario, o ¿cómo acabar con ese total? Una técnica común es mantener un conjunto de los totales que son las claves de los usuarios, por lo que sólo tiene que ejecutar el archivo más de una vez. Código:
awk -F : '{ if (++total[$1] > 500) print $1, $2 }' file
(Esto imprimirá múltiples veces, una para cada uno de los registros después de que el total se ha superado. Calcular la manera de evitar que se deja como ejercicio.) Una vez se obtiene la impresión que usted quiere, sólo que la cañería de salida de tipo. Editado por última época; al 04-27-2008 05:58 PM.. Motivo: Código de ejemplo |
|
||||
|
Sí, el total se calcula por encima de fuera de la declaración final:
total \u003d $ 3 + $ 4 + $ 5 ($ 3 - $ 5 se muestran los campos de acceso para cada uno de los tres meses) |
|
||||
|
Así que tiene una línea para cada usuario, no un registro con una línea para cada inicio de sesión? Usted no está en la impresión FIN declaración entonces, ¿no? FIN sólo se evaluó una vez, al final del archivo.
|
|
||||
|
Para hacer el cuento corto, después de su entrada y la salida deseada.
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|