如何在 Bash 中删除文本文件中重复对的两行?

如何在 Bash 中删除文本文件中重复对的两行?

我想删除文本文件中重复的两行。

无法使用sort -u fileawk '!a[$0]++' file同时删除重复行来做到这一点。

我必须以某种方式捕获已删除的行并运行sed以使用此列表,然后删除已删除的行(有没有办法获取此输出?)。重复行的模式是不可预测的。

我正在寻找一种比编写完整的 bash 程序更短的方法。它似乎是一个有用的工具,应该有一种简单的方法来做到这一点。

很容易删除其中一个重复项。我需要删除两个都找不到方法。解析过程中遇到。

答案1

您可以使用-u该实用程序的命令行参数uniq,它可以精确地完成您想要的操作:

−u   Suppress the writing of lines
     that are repeated in the
     input.

当然,您仍然需要对输入进行排序:

sort file | uniq -u

相关内容