Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/10/2008, 19:16
mhatter
 
Fecha de Ingreso: septiembre-2007
Mensajes: 52
Antigüedad: 17 años, 4 meses
Puntos: 2
Respuesta: conseguir el id de un proceso

Cita:
Iniciado por Raul21 Ver Mensaje
Hola , buenas tardes:
A ver si alguien puede darme una idea. Yo hago esto:

1) ps -ef | grep /opt/netcool/omnibus/probes/solaris2/nco_p_syslog | grep root

Y obtengo:

root 15680 25532 0 Sep 17 ? 1419:37 /opt/netcool/omnibus/probes/solaris2/nco_p_syslog

Pues bien de esto ultimo quiero obtener el id de este proceso es decir el numero 15680.
Hola,

No me queda claro si estás buscando una solución en Perl, o en sh y con utilidades Unix. En cualquier caso, si estuvieras haciendo tu procesamiento en Perl, podrías separar esa línea de texto con la función split(), la cual devuelve un arreglo, y de allí tomas el campo que quieras. Por ejemplo:

Código perl:
Ver original
  1. my $linea = `ps -ef | grep /opt/netcool/omnibus/probes/solaris2/nco_p_syslog | grep root`;
  2.  
  3. my @campos = split /\s+/, $linea;
  4.  
  5. my $id_proceso = $campos[1];
  6.  
  7. print "El ID del proceso es $id_proceso\n";

Si lo quisieras hacer en el Shell de Unix, puedes usar awk para separar esa línea en campos también, y obtener el campo específico que quieras. Por ejemplo:

Código:
ps -ef | grep /opt/netcool/omnibus/probes/solaris2/nco_p_syslog | grep root | awk { print $2 }
Si estás interesado en usar herramientas del shell para este tipo de tareas, te recomiendo bastante que busques en Internet material que hable sobre sed y awk y aprendas a usarlos aunque sea en un nivel muy básico. Son herramientas tremendamente útiles :).