例如所在目錄爲/abc,替換目標爲其內部所有文件(含所有子目錄).
替換目錄下所有文件的所有字符串:
例如:http
替換爲helloWold
,命令:
# cd /abc && beforeName="http";afterName="helloWorld";sed -i "s/$beforeName/$afterName/g" `grep "$beforeName" -rl ./`;
替換文件名:
例如:某目錄下所有含有http
的文件或目錄均換爲helloWold
,命令:
# cd /abc && beforeName="http";afterName="helloWorld";for file in `find -name "*$beforeName*" -type d ` ;do newfile=`echo $file | sed "s/$beforeName/$afterName/g"`;mv $file $newfile;done;for file in `find -name "*$beforeName*" -type f ` ;do newfile=`echo $file | sed "s/$beforeName/$afterName/g"`;mv $file $newfile;done;
所有文件名及文件內容中出現的字符串進行替換:
例如含有 http
的文件名或文件內容均替換:
# cd /abc && beforeName="http";afterName="helloWorld";sed -i "s/$beforeName/$afterName/g" `grep "$beforeName" -rl ./`;for file in `find -name "*$beforeName*" -type d ` ;do newfile=`echo $file | sed "s/$beforeName/$afterName/g"`;mv $file $newfile;done;for file in `find -name "*$beforeName*" -type f ` ;do newfile=`echo $file | sed "s/$beforeName/$afterName/g"`;mv $file $newfile;done