Я пытаюсь получить список каталогов песен в текущей папке, затем найти потенциальные дубликаты и сопоставить их с другой связанной информацией об этом (исполнитель и жанр, которые являются названиями каталогов по сравнению с альбомомпапка). Проблема в том, что я получаю сообщение "(каталог, с которым я пытаюсь что-то сделать): это каталог", в строке "holder = $ (" $ n ")" в моем сценарии оболочки bash. Прежде чем я изменил его, чтобы включить переменную держателя, я получил то же сообщение, исходящее из команд вырезания в переменных «жанр» и «исполнитель». Я ожидаю получить первое и второе поле в каталоге, который я анализирую из этих переменных. "AlbumWithSameName" содержит отдельный каталог. Кажется, он не распознает это как строку, но мне неясно, что нужно сделать для этого. Я новичок в bash (и на языках сценариев в целом), и помощь будет принята с благодарностью. Заранее спасибо.
echo
DuplicateAlbums=$(find . -name \*.ogg -print | cut -d '/' -f 3,4 | sort | uniq | cut -d '/' -f 2 | sort | uniq -d)
IFS=$'\n'
echo 'Possible Duplicate Albums'
for z in $DuplicateAlbums
do
echo " $z"
AlbumWithSameName="$(find . -name \*.ogg -print | ls -d */*/$z/)"
for n in $AlbumWithSameName
do
holder=$("$n")
genre=$($holder | cut -d '/' -f 1)
artist=$($holder | cut -d '/' -f 2)
echo " $genre $artist"
done
done