in reply to swapping lines that match a condition
#!/usr/bin/perl use strict; local $/ = '}'; while (my $line = <DATA>) { $line =~ s/(fixed-address\s.*;)\s(hardware ethernet\s.*;)/$2\n$1/; print $line; } __DATA__ # Host 1 host 45583 { filename "junk1.cm"; hardware ethernet 11:42:a3:d4:55:83; fixed-address 10.100.34.114; } # Host 2 host D78C3 { filename "junk5.cm"; fixed-address 10.100.34.117; hardware ethernet 11:42:a3:FD:78:C3; } # Host 3 host 3A684 { filename "junk6.cm"; fixed-address 10.100.34.119; hardware ethernet 11:42:a3:13:a6:84; } # Host 4 host 46d54 { filename "junk4.cm"; fixed-address 10.100.34.120; hardware ethernet 23:10:3d:14:6d:54; }
|
|---|