如何在unix bash中删除文本文件中的重复行?

时间:2013-08-11 09:46:23

标签: bash

我只有一个包含多行的file.txt,我想删除重复的行而不对文件进行排序。我可以在unix bash中使用什么命令?

file.txt的样本

orangejuice;orange;juice_apple
pineapplejuice;pineapple;juice_pineapple
orangejuice;orange;juice_apple

输出样本:

orangejuice;orange;juice_apple
pineapplejuice;pineapple;juice_pineapple

2 个答案:

答案 0 :(得分:34)

使用awk的一种方式:

awk '!a[$0]++' file.txt

答案 1 :(得分:14)

您可以使用Perl:

perl -ne 'print unless $seen{$_}++' file.txt

-n开关使Perl逐行处理文件。每一行($_)都存储为名为“seen”的哈希中的键,但由于++在返回值后发生,所以在第一次遇到该行时会打印该行。