我只有一个包含多行的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
答案 0 :(得分:34)
使用awk
的一种方式:
awk '!a[$0]++' file.txt
答案 1 :(得分:14)
您可以使用Perl:
perl -ne 'print unless $seen{$_}++' file.txt
-n
开关使Perl逐行处理文件。每一行($_
)都存储为名为“seen”的哈希中的键,但由于++
在返回值后发生,所以在第一次遇到该行时会打印该行。