Chinaunix

标题: awk求解。。 [打印本页]

作者: 小小linux    时间: 2011-04-20 15:32
标题: awk求解。。
本帖最后由 小小linux 于 2011-04-20 15:38 编辑

看了IBM awk学习资料。里面有个 关于 多行记录的例子。。

文件如下。

Jimmy the Weasel
100 Pleasant Drive
San Francisco, CA 12345
Big Tony
200 Incognito Ave.
Suburbia, WA 67890

我们希望 awk 将每 3 行看作是一个独立的记录,而不是三个独立的记录
希望得到的结果是:
Jimmy the Weasel, 100 Pleasant Drive, San Francisco, CA 12345
Big Tony, 200 Incognito Ave., Suburbia, WA 67890

我的awk脚本


[root@localhost bin]# more add.awk
BEGIN {
  FS="\n"
  RS=""
}
{
  print $1“,"$2","$3
}

但是运行之后只显示一行。。
[root@localhost bin]# awk -f add.awk add
Jimmy the Weasel, 100 Pleasant Drive, San Francisco, CA 12345
作者: yinyuemi    时间: 2011-04-20 15:38
回复 1# 小小linux
  1. awk '{printf NR%3?$0 FS:$0 RS}' file
复制代码

作者: 小小linux    时间: 2011-04-20 15:40
回复  小小linux
yinyuemi 发表于 2011-04-20 15:38



    高手啊。。多谢了。。
作者: 小小linux    时间: 2011-04-20 15:43
回复 2# yinyuemi


    能解释一下吗,有点看不懂。。。多谢了。
作者: yinyuemi    时间: 2011-04-20 15:49
awk '{printf NR%3?$0 FS0 RS}' file # NR%3作为判断,为0时,执行printf $0 RS
不是0时,printf $0 FS




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