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

z.r*_*ubi 6 unix bash utility duplicates

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

O B 
O B 
C D 
T V
O B
Run Code Online (Sandbox Code Playgroud)

我希望输出是:

O B 
C D
T V
O B 
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*kMD 9

你可以做:

cat file1 | uniq > file2
Run Code Online (Sandbox Code Playgroud)

或更简洁地说:

uniq file1 file2
Run Code Online (Sandbox Code Playgroud)

假设file1包含

O B
O B
C D
T V
O B
Run Code Online (Sandbox Code Playgroud)

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

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

sort -u file1 > file2
Run Code Online (Sandbox Code Playgroud)