Сегодня я думал, что делаю простую операцию:
git blame file | sort -k 3
Получить все строки file
отсортированные по дате последнего изменения. К сожалению, это, кажется, не сортирует это правильно. Это действительно работает , если я делаю следующее:
git blame file | cut -c 20- | sort
Который просто отрубает первую часть строки, а затем выполняет сортировку. Успех этой команды указывает мне на то, что sort
может фактически выполнить ту операцию, которую я пытался. Почему это не сработало?
Вот пример строки из git blame file
:
35d8e9eb (username 2007-01-17 03:58:04 +0000 155) Some text on line 155
Изменить: Использование любого разумного числа, кроме 3
в исходной командной строке, кажется, работает нормально - я могу отсортировать по хешу (поле 1), имени пользователя (поле 2), времени дня (поле 4) или номеру строки ( поле 6), но дата (поле 3) не работает - я не могу определить, в каком порядке она на самом деле заканчивается ...
Редактировать 2: я сделал обеззараженный входной файл, который показывает ту же проблему. Вот cleaned.txt
:
cb7bb041 (eeeeeee 2010-12-14 19:41:18 +0000 42)
35d8e9eb (cccccccc 2007-01-17 03:58:04 +0000 135)
d7377fa9 (hhhhhhhh 2010-01-30 04:26:28 +0000 178)
И вывод из sort -k 3 cleaned.txt
:
$ sort -k 3 cleaned.txt
cb7bb041 (eeeeeee 2010-12-14 19:41:18 +0000 42)
35d8e9eb (cccccccc 2007-01-17 03:58:04 +0000 135)
d7377fa9 (hhhhhhhh 2010-01-30 04:26:28 +0000 178)
Как вы можете видеть, сортировка по полю даты вообще не состоялась. Вот вывод из cut -c 20- cleaned.txt | sort
по :
$ cut -c 20- cleaned.txt | sort
2007-01-17 03:58:04 +0000 135)
2010-01-30 04:26:28 +0000 178)
2010-12-14 19:41:18 +0000 42)
Сортировка по датам в таком случае работает отлично! Какие-либо предложения?