使用Bash Script从两列中获取唯一的对称对



类似的问题如下:使用SQLite 从两列中获取唯一对称对

我计划在python中进行初始数据预处理(估计时间太长(->尝试使用sql(不断旋转(->现在我计划尝试bash。(约8000万行/3.3G(

csv文件

ID1    ID2
1689    1709
1709    1689
1782    1709
1911    1247
1247    1468
1641    1468
1316    1304
1501    1934
1934    1501
1025    1101

输出

ID1    ID2
1689    1709
1501    1934

任何关于如何在中实现的想法,我都这样尝试过,但这不是我想要的:

awk -F"t" '!seen[$3, $4]++' action_with_gender.csv

你可以试试这个awk脚本:

awk -F"t" '{seen[$1, $2]++};seen[$2, $1]++==1' file

第一和第二字段存储在阵列seen中,并且只有当反相字段对已经存在于阵列中时,才打印这两个字段。

脚本末尾的==1允许删除重复项。

最新更新