Как организовать упорядочивание файлов?

Это означает, что пакет необходимо установить и установить пакет. См. [F1] Буквы верхнего регистра, указанные в альтернативах после знака равенства в трех первых строках легенды, - это буквы, которые, возможно, показаны как первые три символа в первом поле, соответственно, но не все из них в одном и том же случае некоторые буквы показаны в нижнем регистре. Третий символ - это место в обычном режиме.
1
задан 14 August 2013 в 14:32

1 ответ

Хорошо, так что, похоже, я понял это из-за вашей помощи!

Это была простая ошибка! Есть 7 полей, а не 6! Если вы посмотрите на исходное имя файла:

4RCPBlockCoverLtrednalaserfalse 07-10-2012-11-50-14-656.doc.gz

полужирный раздел - это то, что мы идем. Год (2012) и Месяц (7). В сценарии он обрабатывал 10 (в промежутке между 07 и 2012) в качестве первого поля! Все, что я сделал, это добавить [0-9] {2} между ними и вуаля, это работает!

Это сценарий, который вы мне дали, а затем вы можете увидеть, как я его отредактировал.

Спасибо за вашу помощь! Сохраненный мой день!

#!/usr/bin/env bash pathtooriginalfiles=$1 pathtotarget=$2 for i in $(ls "${pathtooriginalfiles}"); do year=$(echo -n ${i}| sed -r 's/^.*[0-9]{2}-[0-9]{2}-([0-9]{4})-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{1,3}\.doc\.gz$/\1/') month=$(echo -n ${i}| sed -r 's/^.*([0-9]{2})-[0-9]{2}-[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{1,3}\.doc\.gz$/\1/') echo $year $month mkdir -p "${pathtotarget}/${year}/${month}" ls -l $pathtotarget cp -auv "${pathtooriginalfiles}/${i}" "${pathtotarget}/${year}/${month}/" done

«,» между {1,3} был для меня ключом.

и «/» в конце строки cp $ {month} / "был ключевым.

0
ответ дан 24 May 2018 в 19:04
  • 1
    Рад, что ты сможешь это исправить. Я действительно спросил вас несколько раз, какое поле было месяцем, поскольку я сделал предположение, что это было dd-mm-yyyy. (Вот как мы это делаем в Австралии.) В любом случае, я рад, что вы в конце концов справились с этим! (Хотя я все еще не уверен, почему имена файлов стали именами каталогов. Конечно, они не были в моем тестировании.) – Sparhawk 16 August 2013 в 05:49
  • 2
    Да, странно. Я тоже не знаю. Извините, я пропустил ваш запрос о том, какой день месяц и год! Есть еще одна вещь, с которой я сталкиваюсь в этом скрипте в своих последних тестах. Он успешно создает каталог year и dir. Если я делаю backup_script.sh / source / target (И если Target уже имеет дерево год / месяц), он перезапускает создание дерева year / month под уже существующим деревом. Я уверен, что это простое исправление, но я не вижу, где это. mkdir -p должен защитить его от этого. Но, похоже, этого не происходит. = / любая идея? – Mike De 17 August 2013 в 03:00
  • 3
    Хорошо, похоже, что команде cp требуется последняя косая черта в конце $ {month} / " вместо $ {month} " – Mike De 17 August 2013 в 03:46

Другие вопросы по тегам:

Похожие вопросы: