如何在Linux Mint中找到文件中重复的行

187 阅读2分钟

这篇简短的文章将告诉你如何在Linux Mint中找到文件中的重复行。**有几种不同的方法来寻找和计算重复的行,我们将介绍最常用的方法。

假设我们有一个文本或CSV文件,下一个内容是 -test.txt

abc
abc
def
def
cvf
ref
tex
tdx
abc

选项1:查找重复行并计数

通过使用终端和连锁的两个命令 -sort +uniq 将帮助我们识别和显示重复行的数量:

sort test.txt | uniq -c

输出结果将是。

  3 abc
  1 cvf
  2 def
  1 ref
  1 tdx
  1 tex

要只列出重复的行,你可以使用grep命令或附加参数:

sort test.txt | uniq -cd

sort test.txt | uniq -c | grep -v '^ *1 '

这将显示:

  3 abc
  2 def

选项2:用终端查找CSV文件中的重复行

假设你需要在CSV文件中只找到某些列中的重复行。如果你想检查整个行,而且没有行号,你可以使用前面的选项。

让我们看看下一个CSV文件 -test.csv

a,1,3
b,2,3
c,3,4
d,5,5
b,2,4
c,f,4
a,2,3

如果我们想得到基于第1列和第3列的重复情况,我们可以使用这样的命令:

awk -F, 'NR==FNR {A[$1,$3]++; next} A[$1,$3]>1 && !B[$0]++' test.csv test.csv

这将导致(注意,文件重复是需要的):

a,1,3
c,3,4
c,f,4
a,2,3

选项3:使用Pandas来寻找重复的行

最后,我们可以看看如何用一个叫Pandas的强大工具来寻找重复的内容。它将帮助你在许多不同的文件类型中,以许多不同的方式找到重复的内容。

你只需要安装Pandas,因为Python在Linux Mint上是默认安装的。要在Linux Mint中安装Pandas,使用下一个命令。

pip install pandas

接下来你可以读取你需要查找重复的文件:

import pandas as pd
df = pd.read_csv("test.csv")

或JSON文件:

df = pd.read_json("test.json")

要找到并列出所有重复的行,请使用:

df[df.duplicated(keep=False)]

或对特定的列使用:

df[df.duplicated(['ID'], keep=False)]

你可以在这里找到关于这个主题的非常好和全面的视频。Python Pandas查找和删除重复的数据