Объединить тысячи уже отсортированных файлов и быстро пересортировать выходной файл

Эта ссылка также содержит некоторую полезную информацию.

3
26.08.2019, 19:00
1 ответ

Если файлы уже отсортированы приемлемым образом, вы можете объединить -отсортировать их, а затем uniqих:

sort -t_ -k2,2n -k3,3n -m -- *.txt | uniq > Unique_Position.txt

... который сортирует числовое значение по второму полю (с разделителями символами подчеркивания_)и, если эти ключи уникальны, по третьему полю. Результирующий вывод затем направляется через uniqперед перенаправлением в выходной файл.

С учетом (короткого )примера входных данных, приведенного выше, результаты:

chr1_1_200
chr1_200_400
chr1_600_800
chr1_1000_1200

Если вы можете полностью указать поля сортировки для строк, которые вы хотите сохранить,вы можете сделать все это в sort, добавив опцию -u:

sort -t_ -k1 -k2,2n -k3,3n -m -u *.txt > Unique_Position.txt

Это позволит сохранить уникальные строки среди трех перечисленных полей без необходимости вызыватьuniq(уведомление о добавлении опции -u). Эти поля сортировки должны соответствовать способу сортировки входных файлов.

2
27.01.2020, 21:24

Теги

Похожие вопросы