Good, simple, Bash slugify function · duncanlock.net
# Slugify
# Transliterate everything to ASCII
# Strip out apostrophes
# Anything that's not a letter or number to a dash
# Strip leading & trailing dashes
# Everything to lowercase
function slugify() {
iconv -t ascii//TRANSLIT \
| tr -d "'" \
| sed -E 's/[^a-zA-Z0-9]+/-/g' \
| sed -E 's/^-+|-+$//g' \
| tr "[:upper:]" "[:lower:]"
}