Cita:
Iniciado por Raul21
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 originalmy $linea = `ps -ef | grep /opt/netcool/omnibus/probes/solaris2/nco_p_syslog | grep root`;
my @campos = split /\s+/, $linea;
my $id_proceso = $campos[1];
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 :).