使用 unix 实用程序删除连续的重复行

Delete consecutive duplicate lines using unix utilities

这听起来很简单,但实际上要复杂一些。我想使用一个 unix 实用程序来删除连续的重复项,留下原来的。但是,我还想保留其他不会在原始文件之后立即出现的副本。例如,如果我们有以下行:

O B 
O B 
C D 
T V
O B

我希望输出为:

O B 
C D
T V
O B 

虽然第一行和最后一行相同,但它们不是连续的,因此我想将它们保留为唯一条目。

你可以这样做:

cat file1 | uniq > file2

或更简洁:

uniq file1 file2

假设file1包含

O B
O B
C D
T V
O B

有关详细信息,请参阅 man uniq。特别要注意 uniq 命令接受两个具有以下语法的参数:uniq [OPTION]... [INPUT [OUTPUT]].

最后,如果您想删除所有重复项(并在此过程中对文件进行排序),您可以这样做:

sort -u file1 > file2