В Unix / Linux используйте команду uniq
согласно ответу Дэвида Локка или sort
согласно комментарию Уильяма Перселла.
Если вам нужен скрипт на Python:
lines_seen = set() # holds lines already seen
outfile = open(outfilename, "w")
for line in open(infilename, "r"):
if line not in lines_seen: # not a duplicate
outfile.write(line)
lines_seen.add(line)
outfile.close()
Обновление: Комбинация sort
/ uniq
удалит дубликаты, но вернет файл с отсортированными строками, что может или не может быть тем, что вы хотите. Сценарий Python выше не будет переупорядочивать строки, а просто удалит дубликаты. Конечно, чтобы выполнить приведенный выше сценарий для сортировки, просто опустите outfile.write(line)
и вместо этого сразу же после цикла выполните outfile.writelines(sorted(lines_seen))
.