Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Linux
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 11-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
La verdad es que muy intuitivo no es.
Bueno, aquí estás usando el lenguaje AWK incrustado en el comando y ciertamente AWK es todo menos intuitivo. De todas formas, con práctica, el uso de comandos se torna intuitivo.

Veamos cómo obtener los diez comandos más usados:

1. El comando history nos da los últimos comandos ejecutados. La salida de history se ve similar a esto:

Código:
  460  find .
  461  find . -exec rm
  462  find . -exec rm {}
  463  find . -exec rm {} \;
  464  find *.sql -exec rm {} \;
  465  ls
  466  cd ..
  467  cp *sql foo/
  468  ls
  469  cp foo.bmp foo/
  470  cd foo
  471  ls
  472  find *.sql -exec rm {} \;
Cada comando precedido por un número y hay varios espacios separando los números de los comandos.

2. Lo primero es tener delimitadores bien definidos. Para ello podemos comprimir los espacios separadores en uno sólo con el comando tr (transalate) aplicado a la salida de history:

Código:
history|tr -s ' '
La opción s es de squeeze. La salida se ve similar pero ya sólo hay un espacio separando los términos:

Código:
460 find .
 461 find . -exec rm
 462 find . -exec rm {}
 463 find . -exec rm {} \;
 464 find *.sql -exec rm {} \;
 465 ls
 466 cd ..
 467 cp *sql foo/
 468 ls
 469 cp foo.bmp foo/
 470 cd foo
 471 ls
 472 find *.sql -exec rm {} \;
 473 ls
 474 touch asql
 475 ls
 476 find *.sql -exec rm {} \;
 477 rm .
 478 ls
 479 rm *
 480 ls
 481 cd ..
 482 find *.sql -exec cp {} foo\ \;
 483 find *.sql -exec cp {} foo \;
 484 cd foo
3. El comando cut sirve para tomar partes de una cadena, pueden ser letras o columnas delimitadas. En este caso, nuestras columnas están delimitadas por un espacio y nos interesa la tercera (hay un espacio al principio):

Código:
history|tr -s ' '|cut -d ' ' -f3
-d indica el delimitador que por defecto es el tabulador y -f el número de columna deseada. La salida queda así:

Código:
find
find
find
find
find
ls
cd
cp
ls
cp
cd
ls
find
ls
touch
ls
find
rm
ls
rm
ls
cd
find
find
cd
Ya tenemos aislados los comandos.

4. O casi, porque podríamos tener concatenaciones anteriores:

Código:
ls|grep sql
Si sólo nos interesa el comando base tendremos que repetir el comando cut ahora con el pipe de separador:

Código:
history|tr -s ' '|cut -d ' ' -f3|cut -d '|' -f1
5. El comando uniq sirve para trabajar líneas repetidas y su opción -c las cuenta. Pero como sólo cuenta líneas repetidas adyacentes, primero hay que ordenarlas con el comando sort:

Código:
history|tr -s ' '|cut -d ' ' -f3|cut -d '|' -f1|sort|uniq -c
uniq antepone el número de ocurrencias:

Código:
      4 cd
      2 cp
      9 find
      7 ls
      2 rm
      1 touch
6. Ahora usamos sort nuevamente para ordenarlas por número de ocurrencias pues es la primera columna de la salida:

Código:
history|tr -s ' '|cut -d ' ' -f3|cut -d '|' -f1|sort|uniq -c|sort
7. Finalmente, tomamos las últimas (tail) 10:

Código:
history|tr -s ' '|cut -d ' ' -f3|cut -d '|' -f1|sort|uniq -c|sort|tail -10
8. Como detalle, podemos eliminar el mismo comando history del listado usando grep antes de contar:

history|tr -s ' '|cut -d ' ' -f3|cut -d '|' -f1|grep -v history|sort|uniq -c|sort|tail -10



Como se ve, cada comando se aplica naturalmente. Con práctica se vuelve intuitivo y muy potente para, por ejemplo, revisar bitácoras.

// Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comandos en Terminal Server Draker Varios 4 16-10-2008 19:35:10
Mezclar Php y JavaScript lucasarts_18 PHP 9 13-03-2007 21:38:10
Mezclar Delphi5 y Visual Basic 6.0 guiweb Varios 4 23-11-2006 14:50:36
es posible mezclar colores a los tform ronimaxh Varios 5 01-02-2006 19:36:14
Mezclar videos walito Varios 2 21-01-2006 01:21:38


La franja horaria es GMT +2. Ahora son las 10:04:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi