来自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
阅读(1471) | 评论(0) | 转发(0) |