2016-11-26 2 views
-1

У меня есть работающий интерактивный скрипт, работающий на Mac, который сортирует и обрабатывает файлы, расположенные в несортированной папке на моем рабочем столе.пакетные файлы обработки через интерактивный скрипт

В настоящее время пользователь вводит jpg в командную строку, скрипт выполняет и выполняет итерацию через несортированную папку, где он берет эти типы файлов и создает новый каталог на рабочем столе и перемещает их.

Его работа потрясающая, но я хочу разработать сценарий дальше, чтобы я мог выполнять пакетный процесс без необходимости вводить отдельные команды терминала по одному.

т.е. я могу ввести ряд аргументов в терминале jpggifdocx и сценарий будет работать и создавать новые настольные каталоги для jpggifdocx и переместить все эти типы файлов в такие.

Единственное предостережение: оставшиеся разные файлы в несортированной папке (.wav png и целый ряд других расширений) должны иметь папку miscellaneous, созданную на рабочем столе, и перемещаться в нее, как только я запускаю пакет ,

Что является самым быстрым способом достижения такого.

read -p "Good Morning, Please enter your file type name for sorting [ENTER]:" extension 
if cd /Users/christopherdorman/desktop; then 
    destination="folder$extension" 
    # ensure the destination folder exists 
    mkdir -p "$destination" 
    if mv -v unsorted/*."$extension" "$destination"; then 
     echo "Good News, Your files have been successfully processed" 
    fi 
fi 

ответ

1

Что-то, как это должно работать:

read -a extensions -p "give me extensions seperated by spaces: " # read extensions and put them in array $extensions 
for ext in ${extensions[@]}; do #for each extension stored in the array extensions 
echo -e "- Working with extension $ext" 
destination="/Users/christopherdorman/desktop/folder$ext" 
mkdir -p "$destination" 
mv -v unsorted/*.$ext "$destination" 
done 

miscellaneous="/Users/christopherdorman/desktop/miscellaneous"  
mv -v unsorted/*.* "$miscellaneous"; 
# since previously you moved the required extensions to particular desktop folders 
# move what ever is left under unsorted folder to the desktop miscellaneous folder 
+0

это не работает должным образом. папки создаются, но нет файлов, перемещенных в них. –

+0

Команда move не проверена. Я просто скопировал вашу команду перемещения. Если он не работает, он не работает с самого начала. Попытайтесь финитировать часть движения. Я попытаюсь проверить его позже. –

+1

В моем коде, если вы измените команду перемещения, как это должно работать: mv -v unsorted /*.$ ext "$ destination" (удалить кавычки из $ ext) –

0
#!/bin/bash 
read -p "Good Morning, Please enter your file type name for sorting [ENTER]:" all_extensions 
if cd /Users/christopherdorman/desktop 
    then while read extension 
     do destination="folder$extension" 
     mkdir -p "$destination" 
     mv -v unsorted/*."$extension" "$destination" 
     done <<< "${all_extensions// /$'\n'}" 
     mkdir -p foldermisc 
     if mv -v unsorted/* "foldermisc" 
     then echo "Good News, the rest of Your files have been successfully processed" 
     fi 
fi