Чтобы получить все строки 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:
Сортировка по датам в таком случае работает отлично! Какие-либо предложения?
1 ответ на вопрос
4
Carl Norum
Я просто понял это. Более короткое имя пользователя eeeeeeeозначает, что перед полем даты есть дополнительный пробел. Поскольку разделитель поля для sortявляется непустым переходом к пустому полю, поле даты для строки с более коротким именем пользователя содержит это пространство как часть ключевого поля и сортируется первым. Простое исправление:
git blame file | sort -b -k 3
Вы также должны следить за именами авторов, которые содержат разное количество пробелов. Во всех ваших примерах есть имена авторов, состоящие из одного слова (`eeeeeee`,` cccccccc` и `hhhhhhhh`), но реальные имена часто будут разными (например, git.git содержит имена авторов, разделенные пробелом от одного до пяти)« слова»). Использование `-e` может помочь; адреса электронной почты, которые он показывает, с меньшей вероятностью будут иметь пробелы.
Chris Johnsen 13 лет назад
2
@Chris - good point. This was just a one-off that confused me, so I'm not worried about it in general, but that's good to remember if I were to script this up.
Carl Norum 13 лет назад
0