Приведенные данные формы:
a b 1.1
c d 2.3
b a 1.1
Можно ли сортировать такой файл на основе разбитого столбца и удалять строки, где дублируется запись в третьем столбце, так что вывод будет:
a b 1.1
c d 2.3
или,
c d 2.3
b a 1.1
,
Я могу использовать только утилиты python, R или командной строки для выполнения этой задачи в наборе очень больших файлов.
Благодарю!
Unix- sort
должна быть способна выполнить вашу работу:
cat file | sort -u -k3,3n a b 1.1 c d 2.3
cat file | sort -u -k3,3rn c d 2.3 a b 1.1
f = open('text.txt','rb')
filter = []
rows = []
for line in f:
line = line.replace('\r\n','')
data = line.split(' ')
if len(data) >= 3:
if not data[2] in filter:
filter.append(data[2])
rows.append(data)
f.close()
f = open('output.txt','wb')
for row in rows:
f.write(row[0] + ' ' + row[1] + ' ' + row[2] + '\r\n')
f.close()