sort
команда может сделать это, но к сожалению, Вы не можете использовать --month-sort
и --numeric-sort
вместе. Так использование:
$ atq |
sed 's/Jan/1/;s/Feb/2/;s/Mar/3/;s/Apr/4/;s/May/5/;s/Jun/6/;s/Jul/7/;s/Aug/8/;s/Sep/9/;s/Oct/10/;s/Nov/11/;s/Dec/12/' |
sort -n -k6,6 -k3,4
Это преобразует сокращения месяца в их числовые значения, затем вид сначала в год (-k6,6
), затем месяц и день (-k3,4
). Вывод не будет иметь имен месяца, но если бы Вы действительно хотели, то Вы могли бы преобразовать тех, которые назад имеют другого sed
.
$ atq |
sed 's/Jan/1/;s/Feb/2/;s/Mar/3/;s/Apr/4/;s/May/5/;s/Jun/6/;s/Jul/7/;s/Aug/8/;s/Sep/9/;s/Oct/10/;s/Nov/11/;s/Dec/12/' |
sort -n -k6,6 -k3,4 |
sed 'h;s/^[0-9][0-9]* *[A-Z][a-z][a-z] *\([0-9][0-9]*\).*/\1/;s/10/Oct/;s/11/Nov/;s/12/Dec/;s/1/Jan/;s/2/Feb/;s/3/Mar/;s/4/Apr/;s/5/May/;s/6/Jun/;s/7/Jul/;s/8/Aug/;s/9/Sep/;G;s/^\(.*\)\n\([0-9][0-9]* *[A-Z][a-z][a-z] *\)[0-9][0-9]*\( .*\)/\2\1\3/'
Заметьте это s/12/Dec/
потребности прибыть прежде s/1/Jan/
.
РЕДАКТИРОВАНИЕ 30.04.2015:
anarcat описал руководство для этого варианта использования, который он отправил в комментариях для этого ответа.
РЕДАКТИРОВАНИЕ 31.05.2013:
Спасибо за принятие! gioele, на который указывают в комментариях это reinject
не работает в repos приложения мерзавца прямого режима, который имеет смысл и отчасти вынимает ветер из моего ответа. slm нашел использование альтернативного метода git annex add
, который похоже, что gioele пошел с. Проверьте ответ slm для получения дополнительной информации об этом.
Исходный
Не услышали о приложении мерзавца; это - классный инструмент!
Хорошо, от того, что у меня есть чтение его на веб-сайте приложения мерзавца на новом компьютере, который можно сделать git clone
из репозитория S3 и это не будет дорого, так как это только копирует символьные ссылки. Затем cd
в него и git annex init <reponamehere>
как обычно, сделать приложение мерзавца, знающее о repo.
Насколько я понимаю это, хитрая вещь, которую Вы пытаетесь сделать, делают приложение мерзавца, знающее о локальных копиях той машины данных repo. Я нашел команду на ее странице справочника названной reinject
то, что я думаю, сделает то, что Вы хотите:
git annex reinject /path/to/files/* /path/to/repo
Можно хотеть добавить --fast
опция, которая могла бы отключить "fsck" (термин приложения мерзавца для вычисления контрольной суммы файлы), который автоматически выполняется reinject
. Это, конечно, немного опасно и даже не может работать: это не ясно ли reinject
принимает --fast
или нет.
Кроме того, Вам, возможно, понадобится некоторый find
острота, если файлы Вы хотите reinject
более сложны, чем единственный каталог. Что-то как:
find /path/to/files/* -type f -exec bash -c 'echo $1 "/path/to/repo/${1#/path/to/files}"' -- '{}' \;
Тот будет (я думать), повторяют путь каждого файла в /path/to/files
при повторении пути назначения в repo с /path/to/files
неизолированный. Замена echo
с git annex reinject
после того как Вы выполнили его, и Вы уверены, что вывод делает то, что Вы предназначаете. Используя find
в сочетании с bash -c
приносит великую державу и большую ответственность :)
Источник: работа в задании анализа данных, которое включает веселый объем пакетных обработок на файлах, и в значительной степени любящий мерзавца.
Я задал Ваш вопрос разработчику приложения мерзавца на их форумах. Вот мой/Ваш вопрос:
У меня есть вопрос на установке нового repo. Действительно ли возможно инициализировать новый repo использование файлов, которые уже локальны на, говорят что мой ноутбук, вместо того, чтобы загрузить их с удаленного репозитория S3? Извините, если это неясно. Но я пытаюсь использовать файлы, которые локальны на моем ноутбуке так я, Дон должен пройти испытание загрузки их от S3.
Я должен также упомянуть, что у меня нет полного набора всех файлов локально на ноутбуке по сравнению с тем, что уже находится в репозитории S3.
Автор git-annex
, Joey, сказал, что можно использовать одну из следующих опций:
git annex reinject
питаться в определенных файлах.git annex add
заметит, имеют ли эти файлы то же содержание как файлы уже в репозитории. Файлы затем будут доступны в двух местах, временном каталоге и везде, где он был проверен в Ваш репозиторий прежде. Можно затем удалить временный каталог.git annex add
единственный путь состоит в том, чтобы войти в прямой режим.
– gioele
31.05.2013, 15:51
reinject
когда существуют другие доступные копии, таким образом, я надеюсь, что они не сделали! Кроме того, я думал, что второй метод в том потоке форума был довольно весел..., который избавит от необходимости расширение переменной удара, которое я делал вполне приятно. – Vanessa Phipps 28.05.2013, 00:17reinject
когда filepath содержит данные. Это заставляет меня съежиться, но возможно можно просто перейти файлы на их соответствующие местоположения в repo, затем работатьgit annex fsck
? – Vanessa Phipps 29.05.2013, 23:25