无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2696|回复: 3

用awk脚本将文件输出为指定的格式

[复制链接]
发表于 2012-7-4 23:52:02 | 显示全部楼层 |阅读模式
用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 编辑 ]
 楼主| 发表于 2012-7-7 10:34:54 | 显示全部楼层
已解决:
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
回复

使用道具 举报

发表于 2012-8-4 16:22:26 | 显示全部楼层

回复 #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
回复

使用道具 举报

 楼主| 发表于 2012-8-11 15:26:40 | 显示全部楼层
谢谢楼上的.如果你那一行还能精简就好了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-16 19:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表