LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2049|回复: 5

如何在AWK里面把数据添加到文件里?

[复制链接]
发表于 2003-3-17 19:33:26 | 显示全部楼层 |阅读模式
比如在END块里面把数组内容写到一个文件里面去。
发表于 2003-3-17 20:26:53 | 显示全部楼层
兄弟问题问的不是太明确。

首先,AWK是文本过滤工具。用它来完成这种任务,我个人认为不是太好的办法:) 完成文本的“增删改”,我看SED更有效。

第二,你问题没指明,数组是什么样的数组?要把它按什么样的格式插到文件中去?

呵呵。个人观点~
发表于 2003-3-17 23:05:24 | 显示全部楼层
兄弟提的问题是有些不明确,grep,sed,awk这三个unix文本编辑工具各有特色,视具体情况使用!如果单指添加的话,可以用重定向技术实现,如:>或>>都可以,因为这三个工具所要达到的目的都是输出用户想要得到的内容.数组的格式是有要求的,也不可能把你的任意输出以数组的形式存在.我不知道我的理解是否正确!;)
举例:
javalee//home/javalee/lx>awk -F: '{print $1 $2}' data > temp1
javalee//home/javalee/lx>cat temp1
Mike Harrington(510) 548-1278
Christian Dobbins(408) 538-2358
...(此处略)
 楼主| 发表于 2003-3-18 04:14:01 | 显示全部楼层
因为我的数组都是在AWK内部定义的,所以我不知道在外面如何得到这个数组的值,所以想办法把数组存到文件里去。
发表于 2003-3-18 10:20:04 | 显示全部楼层
是不是这个意思?
javalee//home/javalee/lx>cat data
Mike Harrington:[510) 548-1278:250:100:175
Christian Dobbins:[408) 538-2358:155:90:201
Susan Dalsass:[206) 654-6279:250:60:50
Archie McNichol:[206) 548-1348:250:100:175
Jody Savage:[206) 548-1278:15:188:150
Guy Quigley:[916) 343-6410:250:100:175
Dan Savage:[406) 298-7744:450:300:275
Nancy McNeil:[206) 548-1278:250:80:75
John Goldenrod:[916) 348-4278:250:100:175
Chet Main:[510) 548-5258:50:95:135
Tom Savage:[408) 926-3456:250:168:200
Elizabeth Stachelin:[916) 440-1763:175:75:300
javalee//home/javalee/lx>awk -F: '{name[x++]=$1};END{for(i=0;i<NR;i++)print i,name}' data >tmp  #取文件中$1域中的值作为数组,在输出到文件tmp中
javalee//home/javalee/lx>cat tmp
0 Mike Harrington
1 Christian Dobbins
2 Susan Dalsass
3 Archie McNichol
4 Jody Savage
5 Guy Quigley
6 Dan Savage
7 Nancy McNeil
8 John Goldenrod
9 Chet Main
10 Tom Savage
11 Elizabeth Stachelin
 楼主| 发表于 2003-3-28 16:45:41 | 显示全部楼层
3q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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