循环遍历目标文件夹下的所有文件和文件夹,并修改每个文件的内容以及文件夹和文件名称 ,保存至文件changecontent.sh
用法:chmod +x changecontent.sh; ./changecontent.sh mydir(目标文件夹)
#!/bin/bash
if [ ! $1 ]; then
echo need dist directory parameter
exit 1
fi
original='bc'
newvalue='ee'
function changename() {
name=$1
ss=`echo $name |grep $original`
if [ $ss ]; then
echo changename: $name
echo $name > name.txt
sed -i "s/$original/$newvalue/g" name.txt
newname=`cat name.txt`
mv $name $newname
fullpath=$newname
fi
}
function getfile(){
for e in `ls $1`
do
fullpath=$1/$e
changename $fullpath
echo $fullpath
if [ -f $fullpath ]; then
sed -i "s/$original/$newvalue/g" $fullpath
elif [ -d $fullpath ]; then
getfile $fullpath
fi
done
}
read -p "Are you want to change filecontent?[Y]:" flag
if [[ ! $flag || "$flag" == "Y" || "$flag" == "y" ]]; then
cd $1
getfile .
rm -rf name.txt
fi