Получите уникальные пары симметрий c из двух столбцов с помощью скрипта Bash - PullRequest
1 голос
/ 03 марта 2020

Аналогичный вопрос, как показано ниже: Получить уникальные пары симметрий c из двух столбцов с SQLite

Я планирую выполнить предварительную обработку данных, начальную в python (расчетное время тоже долго) -> попробуйте использовать sql (продолжал вращаться) -> теперь я планирую попробовать bash. (arounf 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

1 Ответ

2 голосов
/ 03 марта 2020

Вы можете попробовать этот скрипт awk:

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

Первое и второе поля сохраняются в массиве seen, и оба поля печатаются, только если инвертированная пара полей уже присутствует в массиве .

==1 в конце скрипта позволяет удалить дубликаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...