获取另一个文件中不存在的文件中的值

时间:2016-10-01 13:16:27

标签: linux bash shell loops sh

我有两个文件

FILE1.TXT:

docker/registry:2.4.2
docker/rethinkdb:latest
docker/swarm:1.0.0

FILE2.TXT:

docker/registry:2.4.1
docker/rethinkdb:1.0.0
docker/swarm:1.0.0

输出应为:

docker/registry:2.4.2
docker/rethinkdb:latest

换句话说,File1中不存在于File2中的每一行都应该是输出的一部分。

我尝试过以下操作,但它无效。

diff File1.txt File2.txt

3 个答案:

答案 0 :(得分:2)

你可以使用grep

$ grep -v -f file2.txt file1.txt
docker/registry:2.4.2
docker/rethinkdb:latest

如果文件中有很多行,我可能会使用@ user000001解决方案。

答案 1 :(得分:1)

使用awk,你可以做到:

awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1

答案 2 :(得分:1)

使用comm

comm -23 <(sort File1.txt) <(sort File2.txt)