在一个文本文件中删除块内的重复数据是一种聪明而简单的方法每个区块由两条新行分隔。
之前:

apple
banana
apple
cherry
cherry

delta
epsilon
delta
epsilon

apple pie
delta
delta

之后:
apple
banana
cherry

delta
epsilon

apple pie
delta

谢谢。应该在Mac电脑上工作允许unicode任何shell方法/语言/命令被骗不一定是连续的如果忽略前导/尾随空白,或者可以在记录中使用逗号作为分隔符,则有额外的好处。

最佳答案

$ awk '!NF{delete seen} !seen[$0]++' file
apple
banana
cherry

delta
epsilon

apple pie
delta

使用GNU awk for gensub()忽略(与删除相反)前导/尾随空白将是:
$ awk '!NF{delete seen} !seen[gensub(/^\s+|\s+$/,"","g")]++' file

我不知道你在这里指的是什么。

关于ruby - 如何从文本块中删除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35618467/

10-12 21:06