Linux-замена пробелов в именах файлов
У меня есть несколько файлов в папке, и я хочу заменить каждый символ пробела во всех именах файлов подчеркиванием. Как я могу достичь этого?
10 ответов
Я предпочитаю использовать команду "переименовать", которая принимает regexes в стиле Perl:
rename "s/ /_/g" *
вы можете выполнить сухой прогон с флагом-n:
rename -n "s/ /_/g" *
используйте sh...
for i in *' '*; do mv "$i" `echo $i | sed -e 's/ /_/g'`; done
Если вы хотите попробовать это, прежде чем нажать на курок просто изменить mv
to echo mv
.
цитата переменные:
for file in *; do echo mv "'$file'" "${file// /_}"; done
удалите "Эхо", чтобы сделать фактическое переименование.
попробуйте что-то вроде этого, предполагая, что все ваши файлы были .тхт это:
for files in *.txt; do mv “$files” `echo $files | tr ‘ ‘ ‘_’`; done
Я считаю, что ваш ответ находится в заменить пробелы в именах файлов подчеркиванием.
самый простой способ заменить строку (пробел в вашем случае) с другой строкой в Linux
С помощью sed
. Вы можете сделать это следующим образом
sed -i 's/\s/_/g' *
надеюсь, что это помогает.
переименовать все файлы с .py
расширение использования,
find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
образца
$ find . -iname "*.py" -type f
./Sample File.py
./Sample/Sample File.py
$ find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
$ find . -iname "*.py" -type f
./Sample/Sample_File.py
./Sample_File.py