如果我有像这样的csv文件
lion@mammal@scary animal
human@mammal@human
hummingbird@bird@can fly
dog@mammal@man's best friend
cat@mammal@purrs a lot
shark@fish@very scary
fish@fish@blub blub
我还有另一个像这样的csv文件
cat@mammal@purrs a lot
shark@fish@very scary
fish@fish@blub blub
rockets@pewpew@fire
banana@fruit@yellow
我希望输出如下:
lion@mammal@scary animal
human@mammal@human
hummingbird@bird@can fly
dog@mammal@man's best friend
cat@mammal@purrs a lot
shark@fish@very scary
fish@fish@blub blub
rockets@pewpew@fire
banana@fruit@yellow
第一个csv文件中的一些内容存在于第二个csv文件中;它们重叠很多。如何将这些csv文件与正确的顺序组合?保证新条目始终是第一个csv文件开头的前几行。
答案 0 :(得分:11)
Soultion 1:
awk '!a[$0]++' file1.cvs file2.cvs
解决方案2(如果不关心原始订单)
sort -u file1 file2
答案 1 :(得分:0)
这是一种方式:
cat -n
连接输入文件和前缀行号sort -u
删除重复数据sort -n
按前缀数字cut
删除行号$ cat -n file1 file2 | sort -uk2 | sort -nk1 | cut -f2- lion@mammal@scary animal human@mammal@human hummingbird@bird@can fly dog@mammal@man's best friend cat@mammal@purrs a lot shark@fish@very scary fish@fish@blub blub rockets@pewpew@fire banana@fruit@yellow $