Thread RegEx für "ip addr show"
(14 answers)
Opened by cbxk1xg at 2021-02-23 16:07
Das zeilenweise Auslesen der Pipe ist der richtige Ansatz. Danke.
Ich habe das in meiner Catalyst App jetzt folgendermaßen gelöst. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 my $cmd = "ip addr show"; my %interfaces; open my $pipe, '-|', $cmd or die "(E) could not execute: $cmd: $!\n"; my $device; while ( my $line = <$pipe> ) { if ( $line =~ m/^\d+:\s+([^:]+): <([^>]+)>/ ) { $device = $1; $interfaces{$device}->{abilities} = $2; } while ( $line =~ m/(mtu|state|qlen|brd?) (\S+)/g ) { $interfaces{$device}->{$1} = $2; } } close $pipe; # stash für JSON view $c->stash->{networkDevices} = \%interfaces; Last edited: 2021-02-23 21:17:13 +0100 (CET) |