Chinaunix

标题: 有个shell 请教 [打印本页]

作者: lyl2002    时间: 2007-12-20 09:27
标题: 有个shell 请教
cat aa.txt,内容如下
字段    说明      属性     长度
name    姓名      char      8
age     年龄      int     
date    入学日期  date
score   成绩      dec      16,2



根据上述文本文件,分析结果生成成另外一个文件,格式为:

序号|字段|说明|属性|长度|[小数位]|
其中属性定义为:
0:字符
1:整数
2:小数
3:日期

如:
5|name|姓名|0|8||
10|age|年龄|1|8||
15|date|年龄|3|10||
20|score|成绩|2|16|2|

请大虾赐教,不胜感激!!!

[ 本帖最后由 lyl2002 于 2007-12-20 09:28 编辑 ]
作者: ly5066113    时间: 2007-12-20 09:52
awk 'BEGIN{OFS="|";a["char"]=0;a["int"]="1|8";a["dec"]=2;a["date"]="3|10"}NR>1{i+=5;split($4,b,",");print i,$1,$2,a[$3],(a[$3])?b[1]:b[1]"|",(b[2])?b[2]"|":""}' aa.txt

[ 本帖最后由 ly5066113 于 2007-12-20 09:57 编辑 ]
作者: davistar    时间: 2007-12-20 10:05
majia??
作者: ly5066113    时间: 2007-12-20 10:13
原帖由 davistar 于 2007-12-20 10:05 发表
majia??




他是lyl,我是ly
作者: davistar    时间: 2007-12-20 10:15
标题: 回复 #4 ly5066113 的帖子
俺也给看成数字了 哈哈
作者: ly5066113    时间: 2007-12-20 10:19
原帖由 davistar 于 2007-12-20 10:15 发表
俺也给看成数字了 哈哈


而且从注册时间上看,楼主比我早2年。
作者: 无声无息    时间: 2007-12-20 10:56
原帖由 ly5066113 于 2007-12-20 09:52 发表
awk 'BEGIN{OFS="|";a["char"]=0;a["int"]="1|8";a["dec"]=2;a["date"]="3|10"}NR>1{i+=5;split($4,b,",");print i,$1,$2,a[$3],(a[$3])?b[1]:b[1]"|",(b[2])?b[2]"|":""}' aa.txt



学习了!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2