扩展Zsh脚本:重命名Assets文件夹并同步HTML资源引用
解决方案
以下是扩展后的Zsh脚本,完成assets文件夹重命名及HTML资源引用修正:
#!/bin/zsh for zipfile in **/*.zip; do echo "Processing ZIP file: $zipfile" # 递归解压,保留目录结构 unzip -q -o "$zipfile" -d "${zipfile:r}" # 递归查找并处理每个包含note.html的目录 for dir in "${zipfile:r}"/**/; do if [[ -f "$dir/note.html" ]]; then folder_name="${dir:t}" # 提取当前文件夹名称 # 重命名note.html为文件夹同名HTML mv "$dir/note.html" "$dir/$folder_name.html" echo "Renamed note.html to $folder_name.html in $dir" # 处理assets文件夹重命名及HTML引用修正 if [[ -d "$dir/assets" ]]; then new_assets_name="${folder_name}_assets" # 重命名assets文件夹 mv "$dir/assets" "$dir/$new_assets_name" echo "Renamed assets to $new_assets_name in $dir" # 替换HTML中所有assets路径引用 sed -i '' "s/assets\//${new_assets_name}\//g" "$dir/$folder_name.html" echo "Updated asset references in $folder_name.html" fi fi done done
关键扩展说明
- assets文件夹重命名:在每个包含
note.html的目录下,检查是否存在assets目录,若存在则将其重命名为[文件夹名]_assets,避免多文件夹下assets重名冲突。 - HTML引用修正:使用
sed命令批量替换HTML文件中所有指向assets/的资源路径,替换为新的[文件夹名]_assets/,确保图片、附件等资源能被正确加载。 - 注意:若使用Linux环境,需将
sed -i ''改为sed -i(Linux下sed的原地修改参数无需空字符串)。
内容的提问来源于stack exchange,提问作者Tesgin
相关产品推荐
相关产品推荐

