Я хотел бы получить вашу помощь при написании сценария для подсчета количества общих наборов чисел в двух файлах. Мои файлы имеют формат, как показано ниже,подсчет количества общих наборов в двух файлах
Файл 1
0: 152 145 148
1: 251 280 428
2: 42 281 407
3: 289 292 331
4: 309 212 226
5: 339 336 376
6: 339 376 380
7: 41 406 205
8: 237 418 193
Файл 2
0: 251 280 428
1: 309 212 226
2: 339 336 376
3: 339 376 380
4: 420 414 199
5: 418 193 237
6: 203 195 200
7: 287 161 257
8: 287 257 158
9: 263 369 15
10: 285 323 327
Первый столбец только серийные номера и должны игнорироваться при проверке соответствия между два файла и набор одинаковых номеров с различным порядком следует считать общим (for e.g 237 418 193 = 418 193 237)
В этом случае ожидаемый результат будет .....
5 # no. of common sets
251 280 428
309 212 226
339 336 376
339 376 380
237 418 193
Я попытался с AWK сценария -
awk 'FNR==NR{a[$3]=$0;next}{if(b=a[$3]){print b}}' file1 file2
К сожалению, набор "237 418 193" не счет, так как он имеет другой порядок во втором файле (418 193 237).
Может ли кто-нибудь помочь мне выполнить эту задачу с помощью сценария awk
или Python
.
Любая помощь приветствуется?
Хитрость заключается в сортировке каждого набора путем увеличения значений для стандартизации заказа. –
Я написал сценарий некоторое время назад, чтобы помочь мне работать с строками файла в виде наборов. Код находится по адресу https://github.com/nibrahim/lines. Похоже, вы сможете использовать его после некоторой предварительной обработки (потеря серийных номеров). –