Chinaunix首页 | 论坛 | 博客
  • 博客访问: 927803
  • 博文数量: 146
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 1523
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-29 10:32
文章分类

全部博文(146)

文章存档

2014年(2)

2013年(5)

2012年(4)

2011年(6)

2010年(30)

2009年(75)

2008年(24)

分类:

2009-07-25 09:14:22

来自cu上的一篇帖子。

我有如下文件
jealt@jealt-desktop:~$ cat text
1        sldj
1        sldfjf
2        lsdf
1        sdsl
2        ls
用awk可以过滤到我想要的内容
jealt@jealt-desktop:~$ awk '$1=="1" {print $2} ' text
sldj
sldfjf
sdsl
现在想要得到的结果是sldj,sldfjf,sdsl。

我是这样写的:
awk '$1==1{printf "%s,",$2}' text|sed 's/\(.*\),/\1\n/'

另外其他人的方法有:
awk '$1==1{if(i++)printf ","$2;else printf $2}' text
  这个方法是开始i没有赋值所以就执行else语句,打印$2,接下来i就有值了就去执行if语句

还有一种方法:
awk '$1=="1" {print $2}' text | paste -d"," -s

阅读(1442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~