#!/bin/bash # by Mendel Cooper # Released under the GPL, but please give credit if re-used. # Delete filenames in current directory containing bad characters. for filename in * do badname=`echo "$filename" | sed -n /[\+\{\;\"\\\=\?~\(\)\<\>\&\*\|\$]/p` # Files containing those nasties: + { ; " \ = ? ~ ( ) < > & * | $ rm $badname 2>/dev/null # So error messages deep-sixed. # Now, take care of files containing embedded whitespace. spacecheck=`echo "$filename" | awk 'END { print NF }' ` if [ $spacecheck -gt 1 ] # More than one field, i.e., white-space, in file name? then rm "$filename" fi done exit