Сегодня я думал, что делаю простую операцию:
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)
Сортировка по датам в таком случае работает отлично! Какие-либо предложения?
eeeeeee
, состоящие из одного слова (,,cccccccc
иhhhhhhhh
), но настоящие имена часто могут отличаться (например, git.git содержит имена авторов, содержащие от одного до пяти разделенных пробелами слов). Использование-e
может помочь; адреса электронной почты, которые он показывает, с меньшей вероятностью будут иметь пробелы.