linux + create host file from CSV file by sed or awk or perl

Posted by yael on Server Fault See other posts from Server Fault or by yael
Published on 2012-09-19T08:40:44Z Indexed on 2012/09/19 9:40 UTC
Read the original article Hit count: 391

Filed under:
|
|
|

I have the following CSV file

this file defined which Linux machine exist in the system and there ip's

my target is to create host file from this file

please advice how to create host file as example 1 from my CSV file ( I need to match the IP address from CSV file and put it on the first field of the host file , then match the LINUX name and locate this name in the sec field – as example 1 )

remark - should be performed by sed or awk or perl .. , I need to write the solution in my bash script

CSV file

    , machine , VM-LINUX1 , SZ , Phy ,  10.213.158.18 , PROXY

    , VM-LINUX2 , SZ , 10.213.158.19 ,

    OLD HW , VM-LINUX3 , SZ , 10.213.158.20 ,

    , VM-LINUX4 , SZ , Phy ,  10.213.158.21 ,

    , VM-LINUX5 , SZ , Phy , OUT , EXT , LAN3 , 10.213.158.22 , INTERNAL 

    , VM-LINUX6 , SZ , Phy ,  10.213.158.23 ,

    , server , new HW , VM-LINUX7 , SZ , Phy ,  10.213.158.24 , OUT, LAN3

    , VM-LINUX8 , SZ , 10.213.158.25 ,

    OLD HW , machine , VM-LINUX9 , SZ , Phy , INT , 10.213.158.26 , LAN2, AN45, 

    , VM-LINUX10 , SZ , Phy ,  10.213.158.27 ,

    , VM-LINUX11 , SZ , Phy ,  LAN5 , 10.213.158.28 ,

example 1 ( host file )

    10.213.158.18 VM-LINUX1
    10.213.158.19 VM-LINUX2
    10.213.158.20 VM-LINUX3
    10.213.158.21 VM-LINUX4
    10.213.158.22 VM-LINUX5
    10.213.158.23 VM-LINUX6
    10.213.158.24 VM-LINUX7
    10.213.158.25 VM-LINUX8
    10.213.158.26 VM-LINUX9
    10.213.158.27 VM-LINUX10
    10.213.158.25 VM-MACHINE8


    10.213.158.26 STAR9
    10.213.158.27 TOP10
    10.213.158.28 SERVER11

© Server Fault or respective owner

Related posts about linux

Related posts about perl