I'm a bit new to perl scripting, so I would like to ask for some advice. I have tried several variations of scripts I've found on the net, but can't seem to get them to work out just right.
I have a file with the following information...
I have another script that is rearranging this just fine with one exception. The lines that have 'fixed-address' as the last line before the close bracket are working fine. The lines that have 'hardware ethernet' on them are causing my big script to misinterpret the information.# 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; }
My desired result would be the following...
So what I'd like to build is a script that would search for 'fixed-address'. If it's followed by '}', do nothing. If it's followed by 'hardware ethernet', flip the lines 'fixed-address' and 'hardware ethernet'.# 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; }
Does anyone have any advice on how they think that they would accomplish this? I'd appreciate any help that someone could provide.
In reply to swapping lines that match a condition by TheBigAmbulance
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |