Пока никакие имена файлов не имеют двоеточия в них:
IFS="\n" for f in $(file * | grep "Number of Words: 161" | sed 's/:.*$//'); do
rm "$file"
done
Пример
Таким образом, первый [118565]-[118566] - это код ASCII [118567]2d[118568], в то время как второй [118569]-[118570] вообще не является кодом ASCII. Поэтому тире явно отличаются. На самом деле это символ UTF-8 [118571]0xe28093[118572], EN-DASH. (Спасибо [118573]@casey[118574] за пояснение!)
Для замены символа в такой строке можно использовать либо [118575]sed[118576], либо поместить строку в переменную и выполнить поиск и замену в строке для этого одного символа.
sed
bash