У меня есть следующий текстовый файл (sort_test.txt):
PGA_scaffold1__77
PGA_scaffold2__36
PGA_scaffold3__111
PGA_scaffold4__129
PGA_scaffold5__109
PGA_scaffold6__104
PGA_scaffold7__69
PGA_scaffold8__63
PGA_scaffold9__45
PGA_scaffold10__49
PGA_scaffold11__79
PGA_scaffold12__71
PGA_scaffold13__52
PGA_scaffold14__91
PGA_scaffold15__101
PGA_scaffold16__33
PGA_scaffold17__51
PGA_scaffold18__69
Когда я пытаюсь отсортировать файл с помощью следующего кода, вывод сортировки кажется не в порядке (в частности, строки 9и 10):
IN: awk -F"_" '{print $1"_"$2"_"$3"_"$4}' sort_test.txt | sort
OUT:
PGA_scaffold10__49
PGA_scaffold11__79
PGA_scaffold12__71
PGA_scaffold13__52
PGA_scaffold14__91
PGA_scaffold15__101
PGA_scaffold16__33
PGA_scaffold17__51
PGA_scaffold1__77
PGA_scaffold18__69
PGA_scaffold2__36
PGA_scaffold3__111
PGA_scaffold4__129
PGA_scaffold5__109
PGA_scaffold6__104
PGA_scaffold7__69
PGA_scaffold8__63
PGA_scaffold9__45
Почему строки 9 и 10 выглядят не в порядке?
Желаемый результат:
PGA_scaffold10__49
PGA_scaffold11__79
PGA_scaffold12__71
PGA_scaffold13__52
PGA_scaffold14__91
PGA_scaffold15__101
PGA_scaffold16__33
PGA_scaffold17__51
PGA_scaffold18__69
PGA_scaffold1__77
PGA_scaffold2__36
PGA_scaffold3__111
PGA_scaffold4__129
PGA_scaffold5__109
PGA_scaffold6__104
PGA_scaffold7__69
PGA_scaffold8__63
PGA_scaffold9__45
Если я изменяю код для печати только первых трех полей, сортировка делает то, что я ожидаю:
IN: awk -F"_" '{print $1"_"$2"_"$3}' sort_test.txt | sort
OUT:
PGA_scaffold1_
PGA_scaffold10_
PGA_scaffold11_
PGA_scaffold12_
PGA_scaffold13_
PGA_scaffold14_
PGA_scaffold15_
PGA_scaffold16_
PGA_scaffold17_
PGA_scaffold18_
PGA_scaffold2_
PGA_scaffold3_
PGA_scaffold4_
PGA_scaffold5_
PGA_scaffold6_
PGA_scaffold7_
PGA_scaffold8_
PGA_scaffold9_
Итак, похоже, что что-то в четвертом поле влияет на сортировку, но не понятно почему.
Проблема в том, что мне нужна начальная сортировка, нопоменялись местами строки 9 и 10.
У кого-нибудь есть мысли о том, почему сортировка происходит таким образом и как я могу изменить ее так, чтобы получить ожидаемый результат?