这篇简短的文章将告诉你如何在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查找和删除重复的数据