【问题标题】:Get unique symmetric pairs from two columns with Bash Script使用 Bash 脚本从两列中获取唯一的对称对
【发布时间】:2020-03-03 07:08:58
【问题描述】:

类似的问题如下:Get unique symmetric pairs from two columns with SQLite

我计划在 python 中进行数据预处理(估计时间太长)-> 尝试使用 sql(保持旋转)-> 现在我计划尝试 bash。 (大约 80M 行/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

【问题讨论】:

    标签: bash shell csv


    【解决方案1】:

    你可以试试这个 awk 脚本:

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

    第一个和第二个字段存储在数组seen 中,只有在数组中已经存在反转字段对时才会打印这两个字段。

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

    【讨论】:

    猜你喜欢
    • 2017-08-08
    • 2016-09-03
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多