#!/bin/bash # Creates directories with names based on zips and unzips. # Example: Blood Orange - Coastal Grooves.zip => blood_orange_coastal_grooves # This script is OSX specific - unzip fails on special characters so it uses ditto find ./*.zip | while read -r zipped do echo "processing $zipped"; # The name of the directory to unzip the content to. # Changes spaces to _, remove non word chars, remove repeating _, change to lowercase base=$(basename "$zipped" .zip) dir=$(echo "$base"\ | gsed 's/\s/_/g'\ | gsed 's/\W//g'\ | gsed 's/_\+/_/g'\ | tr '[:upper:]' '[:lower:]' ) echo "create $dir" mkdir "$dir" ditto -V -x -k --sequesterRsrc --rsrc "$zipped" "$dir" done