awk使用的问题

buptxf 2010-11-30 06:39:30
我有下面的一个文件:
如何可以使用awk命令将所有的speed值除以2取整<?xml version="1.0"?>
<trafficResponse>
<status>
<isError>false
</isError>
<message>
</message>
</status>
<allTrafficReport expiry="1275804512154">
<flows>
<flow id="121+08569" tmc="121+08569" time="53" speed="236" free="140" jam="0.0" ids=""/>
<flow id="105P19378" tmc="105P19378" time="0" speed="212" free="0" jam="0.0" ids=""/>
<flow id="122N09350" tmc="122N09350" time="68" speed="244" free="301" jam="0.0" ids=""/>
<flow id="122-11385" tmc="122-11385" time="0" speed="232" free="0" jam="0.0" ids=""/>
<flow id="119+15899" tmc="119+15899" time="0" speed="244" free="0" jam="0.0" ids=""/>
<flow id="121+10005" tmc="121+10005" time="0" speed="240" free="0" jam="0.0" ids=""/>
<flow id="125P05651" tmc="125P05651" time="3" speed="261" free="301" jam="0.0" ids=""/>
<flow id="125-05675" tmc="125-05675" time="338" speed="261" free="301" jam="0.0" ids=""/>
<flow id="122N04945" tmc="122N04945" time="34" speed="277" free="301" jam="0.0" ids=""/>
<flow id="121P04795" tmc="121P04795" time="2" speed="257" free="301" jam="0.0" ids=""/>
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
buptxf 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 steptodream 的回复:]
引用 4 楼 buptxf 的回复:

需要文件的格式不变,只是speed的内容改变了

我看你帖子的时候 你1楼的回复还没有呢 没那个要求
还是用perl写一句吧 由于水平不高 所以命令有点长
perl -n -i -e 'if($_ =~ /(.+speed=")(\d+)(".*)/){$var=int($2/2);}s/(.+speed=")(\d+)(".*)/$1$var$……
[/Quote]
非常感谢!
steptodream 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 buptxf 的回复:]

需要文件的格式不变,只是speed的内容改变了
[/Quote]
我看你帖子的时候 你1楼的回复还没有呢 没那个要求
还是用perl写一句吧 由于水平不高 所以命令有点长
perl -n -i -e 'if($_ =~ /(.+speed=")(\d+)(".*)/){$var=int($2/2);}s/(.+speed=")(\d+)(".*)/$1$var$3/;print;' file
buptxf 2010-11-30
  • 打赏
  • 举报
回复
需要文件的格式不变,只是speed的内容改变了
buptxf 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 steptodream 的回复:]
awk -F' |\"' '{if($12 !=""){print int($12/2)}}' file
[/Quote]

你用awk -F' |\"' '{if($12 !=""){print int($12/2)}}' file > file
试试,打印出来的是
118
106
122
116
122
120
130
130
138
128
118
而不是
<?xml version="1.0"?>
<trafficResponse>
<status>
<isError>false
</isError>
<message>
</message>
</status>
<allTrafficReport expiry="1275804512154">
<flows>
<flow id="121+08569" tmc="121+08569" time="53" speed="128" free="140" jam="0.0" ids=""/>
<flow id="105P19378" tmc="105P19378" time="0" speed="106" free="0" jam="0.0" ids=""/>
<flow id="122N09350" tmc="122N09350" time="68" speed="122" free="301" jam="0.0" ids=""/>
<flow id="122-11385" tmc="122-11385" time="0" speed="116" free="0" jam="0.0" ids=""/>
<flow id="119+15899" tmc="119+15899" time="0" speed="122" free="0" jam="0.0" ids=""/>
<flow id="121+10005" tmc="121+10005" time="0" speed="120" free="0" jam="0.0" ids=""/>
<flow id="125P05651" tmc="125P05651" time="3" speed="130" free="301" jam="0.0" ids=""/>
<flow id="125-05675" tmc="125-05675" time="338" speed="130" free="301" jam="0.0" ids=""/>
<flow id="122N04945" tmc="122N04945" time="34" speed="138" free="301" jam="0.0" ids=""/>
<flow id="121P04795" tmc="121P04795" time="2" speed="128" free="301" jam="0.0" ids=""/>
steptodream 2010-11-30
  • 打赏
  • 举报
回复
awk -F' |\"' '{if($12 !=""){print int($12/2)}}' file
buptxf 2010-11-30
  • 打赏
  • 举报
回复
speed的值除以2取整后重定向到另一个文件,格式保持不变,例如修改完后应该是这样的结果:
<?xml version="1.0"?>
<trafficResponse>
<status>
<isError>false
</isError>
<message>
</message>
</status>
<allTrafficReport expiry="1275804512154">
<flows>
<flow id="121+08569" tmc="121+08569" time="53" speed="128" free="140" jam="0.0" ids=""/>
<flow id="105P19378" tmc="105P19378" time="0" speed="106" free="0" jam="0.0" ids=""/>
<flow id="122N09350" tmc="122N09350" time="68" speed="122" free="301" jam="0.0" ids=""/>
<flow id="122-11385" tmc="122-11385" time="0" speed="116" free="0" jam="0.0" ids=""/>
<flow id="119+15899" tmc="119+15899" time="0" speed="122" free="0" jam="0.0" ids=""/>
<flow id="121+10005" tmc="121+10005" time="0" speed="120" free="0" jam="0.0" ids=""/>
<flow id="125P05651" tmc="125P05651" time="3" speed="130" free="301" jam="0.0" ids=""/>
<flow id="125-05675" tmc="125-05675" time="338" speed="130" free="301" jam="0.0" ids=""/>
<flow id="122N04945" tmc="122N04945" time="34" speed="138" free="301" jam="0.0" ids=""/>
<flow id="121P04795" tmc="121P04795" time="2" speed="128" free="301" jam="0.0" ids=""/>

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧