I am automating a security policy creation and I have the records below, including source/dst IP, src/dst/zone, policy name and port. I can easily move the record around and insert text between them using awk, but I stuck at a point when I need to modify an individual record and keep the rest the same. As in the below, in the 3rd record I need to replace "." with "_" and "/" with "-", for the reason that "." and "/" are notsupported in policy names.
net-10.1.24.0/23 net-10.20.0.0/27 net-10.1.24.0/23_net-10.20.0.0/27 vpn-zone internal-zone-servers udp-123
net-10.1.24.0/23 net-10.20.0.0/27 net-10.1.24.0/23_net-10.20.0.0/27 vpn-zone internal-zone-users grp-app-ldap
net-10.3.223.8/29 net-10.20.0.0/27 net-10.3.223.8/29_net-10.20.0.0/27 dmz-zone1 internal-zone-users tcp-389
net-10.1.194.64/26 net-10.20.0.64/27 net-10.1.194.64/26_net-10.20.0.64/27 dmz-zone2 internal-zone-servers tcp-8080
I need to get to something like:
net-10.1.24.0/23 net-10.20.0.0/27 net-10_1_24_0-23_net-10_20_0_0-27 vpn-zone internal-zone-servers udp-123
So far I achieved the same result but saving 3rd record to a new file, substiuting "." and "/" with sed and then using "paste file1 file2" to join them together. Also it can be done by a script. but I was hoping that you can advise on more intelligent and simple one line awk/sed solution.
I would do 2 substitutions on the third field then print the line: