La idea de armar un árbol de directorios es para otro script que no viene al caso detallarlo.
La cuestión es que buscando en internet no encontré ningún script en Perl similar por lo que me propuse a armarlo.
La idea es que sea compatible con (Linux, AIX, HP-UX, Solaris, Tru64, etc).
Va el script:
Using perl Syntax Highlighting
#!/bin/perl
use strict;
# armo arbol de procesos
my @ProcessOS = qx(ps -ef);
my @estructura; #Array multidimensional, en este caso seria de 3d
foreach (@ProcessOS) {
$_ =~ /[d*w*]s+(d*)s+(d*)s+d{1,5}s+[d*:*w*s+d{1,2}]*W{2}s+[d*:*]*s+([-*:*[*]*/*w*d*]*)s*/;
push (@estructura, [$1, $2, $3]) if ($1);
}
my ($x,$y);
print '<table border="1">';
foreach $x (0..@estructura-1){
print "<tr>n";
foreach $y (0..@{$estructura[$x]}-1){
print "<td> $estructura[$x][$y] </td>n";
}
print "</tr>nn";
}
print "</table>";
use strict;
# armo arbol de procesos
my @ProcessOS = qx(ps -ef);
my @estructura; #Array multidimensional, en este caso seria de 3d
foreach (@ProcessOS) {
$_ =~ /[d*w*]s+(d*)s+(d*)s+d{1,5}s+[d*:*w*s+d{1,2}]*W{2}s+[d*:*]*s+([-*:*[*]*/*w*d*]*)s*/;
push (@estructura, [$1, $2, $3]) if ($1);
}
my ($x,$y);
print '<table border="1">';
foreach $x (0..@estructura-1){
print "<tr>n";
foreach $y (0..@{$estructura[$x]}-1){
print "<td> $estructura[$x][$y] </td>n";
}
print "</tr>nn";
}
print "</table>";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
En este caso se guardan en el array de 3D los PID PPID CMD del OS.
Las dudas son 2.
Esta línea: push (@estructura, [$1, $2, $3]) if ($1);
¿Es optima? ¿Existe una más óptima?
Y por último, ¿a alguien se le ocurre un algoritmo para armar el árbol? Ya tenemos los datos pero si me dan una mano sería bueno.
Saludos