#!/bin/sh # File Naming Correction (script) # Usage: fnc [filename] [ ! -f "$1" ] && { echo "Error: File '$1' not found"; exit 1; } file="${1##*/}" dir="${1%/*}" # lowercase base=$(echo "${file%.*}" | tr '[:upper:]' '[:lower:]') ext=$(echo "$file" | grep -q "\." && echo ".${file##*.}" | tr '[:upper:]' '[:lower:]') # replace whitespaces with single dashes base=$(echo "$base" | sed 's/\s/-/g;' | tr -s - - | # lowercase first letter awk '{printf tolower(substr($0,1,1))} {print substr($0,2)}') mv -i "$dir/$file" "$dir/$base$ext"