【发布时间】:2016-02-21 03:04:30
【问题描述】:
我有一个看起来像这样的数据集:
Input
Cat 2 1 aa
Dog 1 0 aa
Dog 1 2 aa
Cat 2 7 aa
Mouse 0 0 aa
Cat 1 5
Dog 4 3
. . .
. . .
. . .
Cat 1 5
Dog 4 3
Cat 6 9 bb
Dog 3 1 bb
Dog 3 6 bb
Cat 6 4 bb
Mouse 0 0 bb
有了这个数据集,我想做以下事情:
- 如果第 4 列为空白,则打印该行。
-
如果第 4 列不为空,则仅打印第 1 列和第 4 列的每种组合的记录的第一次出现。
输出
2 类 1 类
狗 1 0 aa
鼠标 0 0 aa
猫 1 5
狗 4 3
. . .
. . .
. . .
猫 1 5
狗 4 3
Cat 6 4 BB
狗 3 1 bb
鼠标 0 0 bb
注意这里:“Cat 2 1 aa”是第一条记录,第 1 列=cat,第 4 列=aa,所以打印出来了。没有打印“cat 1 5 aa”,因为我们已经有一个列 1=cat 和列 4=aa 的记录。
【问题讨论】:
-
试试 sort + uniq + awk 的组合.....
标签: awk