2013-03-19 2 views
0

Я чувствую, что то, что я хочу сделать, достаточно просто, но я новичок в сценариях оболочки, поэтому я буду благодарен за любую помощь, которую вы можете мне дать.Использование BASH для организации файлов с использованием разделителя «_» в имени файла

ВОПРОС: У меня есть папка с файлами различных типов файлов (например, «.jpg», «.psd», «.png») и вам необходимо организовать эти файлы в подкаталоги. Имена файлов каждого файла следуют одному и тому же соглашению: «number_name.extension». В нескольких файлах используется одно и то же значение «число», и я хочу, чтобы сценарий должен был создать папку со значением «число» (если она еще не существует) и переместить все файлы с тем же значением «число» в упомянутый независимо от типа файла/расширения.

Я знаю, что это возможно с Борном, но у меня проблемы с обволакиванием вокруг него. Я искал вокруг подобных потоков, но ничто, кажется, не удовлетворяет всем условиям в моем вопросе. Любая помощь будет очень признательна!

+2

http://whathaveyoutried.com? –

ответ

0

Как насчет:

for f in *; do mkdir -p ${f%%_*}; mv $f ${f%%_*}; done 

Это сохранит полное имя файла, но, возможно, вы хотите обрезать цифры:

for f in *; do 
    dir=${f%%_*} 
    mkdir -p $dir 
    mv $f $dir/${f#*_} 
done 
+0

Это так просто, красиво, мистер Пурселл. Спасибо огромное! – slugoo

Смежные вопросы