删除匹配的连续行

时间:2013-11-30 00:43:24

标签: bash csv sed awk grep

目前我有一个像这样的csv文件:

11:00 p.m.
11:00 p.m.
03:00 p.m.
03:00 p.m.
05:00 a.m.
05:00 a.m.
07:00 a.m.
12:00 p.m.
07:00 a.m.
05:00 a.m.

我想删除连续行中的重复项,因此输出将是:

11:00 p.m.
03:00 p.m.
05:00 a.m.
07:00 a.m.
12:00 p.m.
07:00 a.m.
05:00 a.m.

我不想删除所有重复项,只是删除连续行中的重复项,例如,如果第4行和第5行匹配,则删除其中一个重复行。有没有必要运行for循环的简单方法呢?

2 个答案:

答案 0 :(得分:5)

尝试uniq

它可以做你想做的事。

答案 1 :(得分:4)

awk '$0 != prev; {prev=$0}' file.txt