Я работаю над задачей, в которой мне нужно заменить специальные символы в имени файла на _ во всех рекурсивных папках в unix / Python.
PFB код Unix.
#!/bin/sh
# Shell script to find out all the files under a directory and
#its subdirectories. This also takes into consideration those files
#or directories which have spaces or newlines in their names
DIR="."
function list_files()
{
if !(test -d "$1")
then echo $1; return;
fi
function rename_files()
{
str="$1"
regex="[0-9a-zA-Z]._+"
if [[ ! "$str" =~ ^[0-9a-zA-Z]+$ ]]
then
echo $1
else
echo "f you"
fi
}
cd "$1"
# echo; echo `pwd`:; #Display Directory name
for i in *
do
if test -d "$i" #if dictionary
then
list_files "$i" #recursively list files
cd ..
else
# echo "$i"; #Display File name
rename_files "$i"
fi
done
}
Может ли кто-нибудь помочь мне с кодом заменить символы в имени файла на _?
Например, если имя файла ABC $ XYZ * PQR.xls, оно должно переименовать в ABC_XYZ_PQR.xls.
Этот процесс должен быть выполнен для всех файлов в папках и вложенной папке.
Пожалуйста, помогите.