Первое замечание: ваш пример показывает файлы в формате ddmmyy
(в том же каталоге), а не dd/mm/yy
. Если это действительно так, то ваш find . -type d | awk -F/ 'NF == 3'
не найдет их, поэтому foreach
будет жаловаться из-за пустого списка arg:
> foreach ( '' )
foreach: Variable name must begin with a letter.
Второе замечание: если вы нашли файлы, то ваш оператор cut
не совсем правильно определяет целевой каталог (независимо от того, какой из ddmmyy
или dd/mm/yy
является правильным форматом имени файла):
> echo '08Aug2013' | cut -c 1-2,5-
08g2013
> echo '08/Aug/2013' | cut -c 1-2,5-
08ug/2013
Ваш оператор echo
должен был указать, что ваш скрипт не выполняет ожидаемую работу.
Попробовать каждый фрагмент кода самостоятельно, чтобы убедиться, что он делает то, что от него ожидается, обычно является хорошей отправной точкой в отладке скриптов. Начните с самого начала, с find . -type d
. Закомментируйте оператор move
, пока оператор echo
не покажет правильную/ожидаемую работу скрипта.