Удалить пробелы из имен файлов в Linux [закрыт]

у меня есть сотни файлов jpg в разных папках, таких как:

  • 304775 105_01.формат JPG
  • 304775 105_03.формат JPG
  • 304775 105_05.формат JPG
  • 304775 105_07.формат JPG
  • 304775 105_02.формат JPG
  • 304775 105_04.формат JPG
  • 304775 105_06.формат JPG

в основном, мне нужно удалить пробелы. Я уже знаю команду для изменения пробелов в подчеркивания:

$ rename "s/ /_/g" *

но мне не нужен подчеркивания в этом случае. Мне просто нужно убрать пробел. Я попробовал следующее, Но это не сработало:

$ rename "s/ //g" *

любая помощь будет оценили.

2 ответов


вы можете сделать что-то вроде этого:

IFS="\n"
for file in *.jpg;
do
    mv "$file" "${file//[[:space:]]}"
done

следующее будет работать, если это действительно пространство.

$ rename "s/ //g" *

попробовать

$ rename "s/\s+//g" *

\s - символ пробела, принадлежащий множеству [ \t\r\n].