9

我只有一个包含多行的 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
4

2 回答 2

37

一种使用方式awk

awk '!a[$0]++' file.txt
于 2013-08-11T12:27:28.827 回答
14

您可以为此使用 Perl:

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

-n开关使 Perl 逐行处理文件。每一行 ( $_) 都作为一个键存储在名为“seen”的散列中,但由于++发生在返回值之后,因此该行在第一次遇到时被打印。

于 2013-08-11T09:48:49.917 回答