Question : Help creating small shell script to manipulate text file data.

Ok so this is the .inf file I want the shell script to manipulate.

An example of what I want it to do....

4 Staticaly defined variables.
$HOSTNAME ex. test01 -->  ComputerName
$IP ex. 10.2.0.10 ---> IPAddress
$GW ex .10.2.0.1 -----> DefaultGateway
$MASK ex. 255.255.255.0 ----> SubnetMask
$DNS1 ex. 10.2.0.15
$DNS2 ex. 10.2.0.16 --> Both need to go to DNSServerSearchOrder (comma seperated)

The idea each of these would be blank (below). And the shell script would search for them and fill them in with the value from the variables.

ComputerName=
IPAddress=
SubnetMask=
DNSServerSearchOrder=
DefaultGateway=


Thanks for any help, this would be a bash shell.
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
;SetupMgrTag
[Unattended]
    InstallFilesPath=C:\i386
    TargetPath=\WINDOWS
    DriverSigningPolicy=Ignore
    UpdateInstalledDrivers=Yes
	OemSkipEula=Yes
    OemPNPDriversPath=drivers\nic\broadcom.netxtreme;drivers\nic\broadcom.netxtreme.ii\diag;drivers\nic\broadcom.netxtreme.ii\iscsiw2k3;drivers\nic\broadcom.netxtreme.ii\iscsiw2k8;drivers\nic\broadcom.netxtreme.ii\vbd;drivers\nic\broadcom.netxtreme.ii\win2k3;drivers\nic\broadcom.netxtreme.ii\win2k8;drivers\nic\intel.100;drivers\nic\intel.1000;drivers\nic\marvel;drivers\nic\nc31xx;drivers\nic\nc77xx;drivers\nic\nc373i;drivers\video\ati.es1000;drivers\video\ati.radeon.7000m\2kxp_inf;drivers\video\ati.rage.xl;drivers\video\ati.rn50\2kxp_inf;drivers\video\xgi.volari.z7\WinXP&2K
 
[GuiUnattended]
    AdminPassword=*
    OemSkipWelcome=1
    OEMSkipRegional=1
    TimeZone=04
[UserData]
    ProductKey=blah
    FullName="blah"
    OrgName="blah"
    ComputerName=test01
 
[Display]
    BitsPerPel=16
    Xresolution=1024
    YResolution=768
 
[LicenseFilePrintData]
    AutoMode=PerSeat
 
[RegionalSettings]
    LanguageGroup=1
    Language=00000409
 
[SetupMgr]
    DistFolder=C:\sysprep\i386
    DistShare=windist
 
[Identification]
    JoinWorkgroup=WORKGROUP
 
[Networking]
 
[NetAdapters]
Adapter01=Params.Adapter01
 
[Params.Adapter01]
InfID=*
 
[NetProtocols]
MS_TCPIP=Params.MS_TCPIP
 
[Params.MS_TCPIP]
AdapterSections=params.TCPIP.Adapter01
DNS=yes
DNSSuffixSearchOrder=
EnableLMHosts=yes
 
[params.TCPIP.Adapter01]
SpecificTo=adapter01
DNSDomain=
DNSServerSearchOrder=10.2.0.15,10.2.0.16
DHCP=no
IPAddress=10.2.0.10
SubnetMask=255.255.255.0
DefaultGateway=10.2.0.1
 
[NetServices]
MS_Server=params.MS_Server
 
[Params.MS_Server]
optimization=balance
 
[NetClients]
MS_MSClient=Params.MS_MSClient
 
[Params.MS_MSClient]
Open in New Window Select All

Answer : Help creating small shell script to manipulate text file data.

Hope this helps
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
cp sysprep.inf sysprep.inf.orig
 
sed "
 s/\r//
 s/ComputerName=.*/ComputerName=$HOSTNAME/
 s/IPAddress=.*/IPAddress=$IP/
 s/DefaultGateway=.*/DefaultGateway=$GW/
 s/SubnetMask=.*/SubnetMask=$DNS1,$DNS2/
 s/\$/\r/
" sysprep.inf.orig > sysprep.inf
 
# sed:
#  Remove CR from each line in the file
#  Replace ComputerName= with ComputerName=$HOSTNAME (substitute whatever HOSTNAME is equal to)
#  Do the same for IPAddress, DefaultGateway, and SubnetMask
#  Replace the CR at the end of each line
Open in New Window Select All
Random Solutions  
 
programming4us programming4us