我正在开发solaris unix。 我有两个文件:
> cat temp
2
8
6
> cat temp2
1
2
3
4
5
6
7
8
9
>
现在我需要temp2中存在的temp2中的所有行: 我遇到this并尝试了下面的命令。
> nawk 'FNR==NR{a[$0];next}($1 in a)' temp temp2
2
6
8
>
这完美无缺。
然后我也看到了使用join here的方法
其中的内容(以及手册页)“默认情况下,当我们没有明确指定字段编号时,join命令与第一个字段上的文件匹配”
所以我想如果我给join temp temp2
我会得到
2
6
8
但是我得到了!
> join temp temp2
2
8
>
如果默认情况下加入与第一列相匹配,有人可以告诉我为什么6会丢失吗?
答案 0 :(得分:6)
您需要在运行join
之前对文件进行排序才能匹配它们。
可以使用:
完成join <(sort temp) <(sort temp2)
我的输出是:
2
6
8
答案 1 :(得分:2)