无忧启动论坛

标题: 用awk脚本将文件输出为指定的格式 [打印本页]

作者: xugaohui    时间: 2012-7-4 23:52
标题: 用awk脚本将文件输出为指定的格式
用awk脚本将下面的temp.dat文件输出为指定的批处理文件

temp.dat文件内容如下:
  1. Time= 0  Offset= 2048  Start= 7220  Count= 0  Keyword= 2  64
  2. CHAddr=00:0C:29:00:00:00
  3. YIAddr=192.168.3.11
  4. SIAddr=192.168.3.58
  5. DHCP address lease time=36000
  6. Subnet mask=255.255.0.0
  7. Gateways=192.168.1.1
  8. DNS server=202.96.128.86,202.96.128.166
复制代码
将上面内容的文件输出为一个批处理文件,批处理文件内容如下:
set myip=192.168.3.11
set subnetmask=255.255.0.0
set gateways=192.168.1.1
set tftpip=192.168.3.58
set dnsservers=202.96.128.86,202.96.128.166
set ipsegment4=11

输出批处理文件说明:
myip就是YIAddr=后面的
subnetmask对应Subnet mask
gateways对应Gateways
tftpip对应SIAddr
dnsservers对应DNS server
ipsegment4值为YIAddr IP地址的最后一段

请论坛的dos时代菜鸟高手帮忙写个脚本,谢谢

[ 本帖最后由 xugaohui 于 2012-7-5 00:37 编辑 ]
作者: xugaohui    时间: 2012-7-7 10:34
已解决:
awk -F"=" 'END;/YIAddr=/{print "set myip=" $NF}' tempip.dat>%drive%\setip.bat
awk -F"=" 'END;/SIAddr=/{print "set tftpip="$NF}' tempip.dat>>%drive%\setip.bat
awk -F"=" 'END;/Subnet mask=/{print "set subnetmask="$NF}' tempip.dat>>%drive%\setip.bat
awk -F"=" 'END;/Gateways=/{print "set gateways="$NF}' tempip.dat>>%drive%\setip.bat
awk -F"=" 'END;/DNS server=/{print "set dnsservers="$NF}' tempip.dat>>%drive%\setip.bat
作者: 2011lsqypj    时间: 2012-8-4 16:22
标题: 回复 #2 xugaohui 的帖子
也可以用一行:
awk -F"=" '/YIAddr=/{print "set myip=" $NF > "%drive%\setip.bat"} /SIAddr=/{print "set tftpip="$NF >> %drive%\setip.bat}/Subnet mask=/{print "set subnetmask="$NF >>%drive%\setip.bat} /Gateways=/{print "set gateways="$NF >>%drive%\setip.bat}/DNS server=/{print "set dnsservers="$NF >>%drive%\setip.bat
}' >>%drive%\setip.bat
作者: xugaohui    时间: 2012-8-11 15:26
谢谢楼上的.如果你那一行还能精简就好了.




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3