Добавить расширение файла в группу файлов из терминала MacOS - PullRequest
0 голосов
/ 14 марта 2020

У меня есть каталог многих каталогов файлов с различными нагрузками. Я хотел бы добавить (для расширения .mid) к каждому из файлов, если это еще не файл .mid.

for f in  /Users/username/junk/*/
    do
    if [ -d $f ]; then
        cd "$f" && echo Entering into $f
        for file in *.*; 
        do
            if [ "${file: -4}" != ".mid" ]; then
                do mv "$i" "$i.mid"; done
            fi
        done
    else
        continue
    fi
done

Я бы хотел, чтобы файлы .mid были исключены из переименование. Если файл «sad54musi c .sty», он останется «sad54musi c .sty».

Когда я извиняюсь за bash, я получаю ошибку:

-bash: syntax error near unexpected token `do'

Любая помощь будет принята с благодарностью.

CS

1 Ответ

4 голосов
/ 14 марта 2020
        if [ "${file: -4}" != ".mid" ]; then
            do mv "$file" "$file.mid"; done
        fi

Внутри if нет do ... done. if имеет then и fi. Просто:

        if [ "${file: -4}" != ".mid" ]; then
            mv "$file" "$file.mid"
        fi

Я бы просто find всех файлов во второй подпапке /Users/username/junk/, которые являются регулярным выражением *.*, но не *.mid, а затем переместить их с суффиксом mid , Ваш сценарий может быть просто:

find /Users/username/junk/ -mindepth 2 -maxdepth 2 -type f \
    -name '*.*' -not -name '*.mid' -exec sh -c 'mv -v "$1" "$1.mid"' -- {} \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...