Chinaunix
标题:
一行怎么拆分成多行
[打印本页]
作者:
搁浅的思恋
时间:
2013-01-07 17:02
标题:
一行怎么拆分成多行
有一个文本文件容易是这样的,主要记录的是网卡流量信息的;
172.16.0.202 eth1 128 0 eth2 0 0 eth3 0 0 eth4 1743 303 eth5 311 0 ……
我想把这个文本转换成这样
172.16.0.202 eth1 128 0
172.16.0.202 eth2 0 0
172.16.0.202 eth3 0 0
172.16.0.202 eth4 1743 303
172.16.0.202 eth5 311 0
......
.....
我自己想了个办法用eth做为分隔符将文本拆分起来,但是不知道怎么把IP地址带到每一行;请大神指点
awk 'BEGIN{RS="eth";OFS=","}NF=NF' file
复制代码
我运行的结果
172.16.0.202
1,128,0
2,0,0
3,0,0
4,1743,303
5,311,0
作者:
yestreenstars
时间:
2013-01-07 17:09
awk '{for(i=2;i<=NF;i+=3)print $1,$i,$(i+1),$(i+2)}'
复制代码
作者:
z421941982
时间:
2013-01-07 18:48
回复
2#
yestreenstars
膜拜大神....
作者:
reyleon
时间:
2013-01-07 18:51
本帖最后由 reyleon 于 2013-01-07 18:53 编辑
awk 'BEGIN{RS="eth";OFS=""}NR==1{ip=$0}NR>1{print ip,RS,$0}' urfile
复制代码
作者:
davidbeckham921
时间:
2013-01-07 18:57
学习了,都是很好的办法。
作者:
zooyo
时间:
2013-01-07 19:08
提示:
作者被禁止或删除 内容自动屏蔽
作者:
loglm
时间:
2013-01-07 22:43
新手学习中,先读贴。谢谢
作者:
ljwd1000
时间:
2013-01-08 10:31
awk 'BEGIN{FS=OFS="eth"}{for(i=2;i<=NF;i++)print $1,$i}'
复制代码
作者:
seesea2517
时间:
2013-01-08 11:15
回复
6#
zooyo
这是篡位的前兆。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2