in reply to Help parsing this data
Hash free !
#!/usr/bin/perl # http://perlmonks.org/?node_id=1138357 use strict; use warnings; $_ = <<END; PID PPID COMMAND 0 0 sched 1 0 /sbin/init 7 0 vmtasks 105 1 /usr/lib/saf/sac 7184 1 /usr/bin/java 7222 1 /usr/lib/utmpd 7501 6223 /usr/sbin/nscd 7507 7184 /bin/sh 7508 7507 /usr/bin/perl 7510 5044 /usr/bin/grep 7512 4333 /usr/bin/egrep 7515 7508 sh 7516 7515 <defunct> END for my $defunct ( /^\s*(\d+)\s+\d+\s+<defunct>/gm ) { my $pid = $defunct; my $answer = ''; while( $pid > 0 && /^(\s*$pid\s+(\d+).*\n)/m ) { $answer = $1 . $answer; $pid = $2; } print "$answer\n"; }
|
|---|