免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1429 | 回复: 4
打印 上一主题 下一主题

help me!!! AWK [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-24 17:57 |只看该作者 |倒序浏览
hi all,  

how to do so...

>>The script can be run as:
>>
>>awk -f mkcsv_m.awk mydatafile.dat > mydatafileo.dat
>>
>>There are 3 main functions delivered from your script:
>>1) produce a header line
>>2) convert date format from dd-mm-yyyy to dd/mm/yyyy
>>3) convert all field seperators "|" to ","


Mydatefile.dat


01-02-2003|15|12|10|8|3|9|57|
02-02-2003|12|15|9|3|8|10|57|
03-02-2003|2|5|9|3|8|0|57|
04-02-2003|3|9|3|8|0|57|5|
05-02-2003|4|5|9|3|8|0|57|
06-02-2003|5|3|8|0|57|5|9|
07-02-2003|6|5|9|3|8|0|57|
08-02-2003|7|5|9|3|8|0|57|
09-02-2003|3|8|0|57|8|5|9|
10-02-2003|9|5|139|3|8|0|57|
11-02-2003|10|5|9|3|8|0|57|




mydatafileo.dat

Transaction Date,Ctr1,Ctr2,Ctr3,Ctr4,Ctr5,Ctr6,Total,
01/02/2003,15,12,10,8,3,9,57,
02/02/2003,12,15,9,3,8,10,57,
03/02/2003,2,5,9,3,8,0,57,
04/02/2003,3,9,3,8,0,57,5,
05/02/2003,4,5,9,3,8,0,57,
06/02/2003,5,3,8,0,57,5,9,
07/02/2003,6,5,9,3,8,0,57,
08/02/2003,7,5,9,3,8,0,57,
09/02/2003,3,8,0,57,8,5,9,
10/02/2003,9,5,139,3,8,0,57,
11/02/2003,10,5,9,3,8,0,57,

论坛徽章:
0
2 [报告]
发表于 2003-02-24 18:46 |只看该作者

help me!!! AWK

BEGIN {
FS="|";
print "Transaction Date,Ctr1,Ctr2,Ctr3,Ctr4,Ctr5,Ctr6,Total,";
}
{
split($1,t,"-"; printf "%s/%s/%s",t[1],t[2],t[3]
for( i=2;i<=NF;i++) printf ","$i
printf "\n"
}

不过sed好象更简洁一点
s/|/,/g
s/-/\//g
1i\
Transaction Date,Ctr1,Ctr2,Ctr3,Ctr4,Ctr5,Ctr6,Total,

论坛徽章:
0
3 [报告]
发表于 2003-02-24 19:00 |只看该作者

help me!!! AWK

This is a homework of my friend, i know use sed will work perfectly..

But it use awk only...

thank you very much...

论坛徽章:
0
4 [报告]
发表于 2003-02-24 19:05 |只看该作者

help me!!! AWK

seems more something... at end with "//"

people:homework {119} awk -f new.awk test.dat > test1.dat
people:homework {120} cat test1.dat
Transaction Date,Ctr1,Ctr2,Ctr3,Ctr4,Ctr5,Ctr6,Total,
01/02/2003,15,12,10,8,3,9,57,
02/02/2003,12,15,9,3,8,10,57,
03/02/2003,2,5,9,3,8,0,57,
04/02/2003,3,9,3,8,0,57,5,
05/02/2003,4,5,9,3,8,0,57,
06/02/2003,5,3,8,0,57,5,9,
07/02/2003,6,5,9,3,8,0,57,
08/02/2003,7,5,9,3,8,0,57,
09/02/2003,3,8,0,57,8,5,9,
10/02/2003,9,5,139,3,8,0,57,
11/02/2003,10,5,9,3,8,0,57,
//

论坛徽章:
0
5 [报告]
发表于 2003-02-24 19:19 |只看该作者

help me!!! AWK

BEGIN {
FS="|";
print "Transaction Date,Ctr1,Ctr2,Ctr3,Ctr4,Ctr5,Ctr6,Total,";
}
/^[0-9]/{
split($1,t,"-"; printf "%s/%s/%s",t[1],t[2],t[3]
for( i=2;i<=NF;i++) printf ","$i
printf "\n"
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP