shell 获取文件夹下所有子文件夹下所有文件的名称 如果子文件夹以anim开头,则生成的字符串规则为: 开头:<path value="com.youxiang.soyoungapp.R.anim. 中间:文件名称 结尾:" /> 如果子文件夹以drawable开头,则生成的字符串规则为: 开头:<path value="com.youxiang.soyoungapp.R.drawable. 中间:文件名称 结尾:" /> 如果子文件夹以layout开头,则生成的字符串规则为: 开头:<path value="com.youxiang.soyoungapp.R.layout. 中间:文件名称 结尾:" /> 如果子文件夹以mipmap开头,则生成的字符串规则为: 开头:<path value="com.youxiang.soyoungapp.R.mipmap. 中间:文件名称 结尾:" /> 每生成一个字符串,换行再生成下一个字符串 以上字符串聚合去重保存一个xml文件中, xml文件的开头是<issue id="whitelist" isactive="true"> Xml文件的结尾是</issue>
时间: 2024-03-12 15:43:47 浏览: 50
可以使用以下的shell脚本实现:
```
#!/bin/bash
# 定义目标文件夹
target_folder="/path/to/target/folder"
# 初始化结果字符串
result=""
# 遍历目标文件夹下所有子文件夹
for folder in $(find $target_folder -type d); do
# 获取子文件夹名称
folder_name=$(basename $folder)
# 如果子文件夹以anim、drawable、layout、mipmap开头
if [[ $folder_name == anim* || $folder_name == drawable* || $folder_name == layout* || $folder_name == mipmap* ]]; then
# 遍历子文件夹下所有文件
for file in $folder/*; do
# 获取文件名称
file_name=$(basename $file)
# 生成字符串
if [[ $folder_name == anim* ]]; then
result+="<path value=\"com.youxiang.soyoungapp.R.anim.$file_name\" />\n"
elif [[ $folder_name == drawable* ]]; then
result+="<path value=\"com.youxiang.soyoungapp.R.drawable.$file_name\" />\n"
elif [[ $folder_name == layout* ]]; then
result+="<path value=\"com.youxiang.soyoungapp.R.layout.$file_name\" />\n"
elif [[ $folder_name == mipmap* ]]; then
result+="<path value=\"com.youxiang.soyoungapp.R.mipmap.$file_name\" />\n"
fi
done
fi
done
# 去重
result=$(echo "$result" | sort | uniq)
# 保存到xml文件中
echo "<issue id=\"whitelist\" isactive=\"true\">" > whitelist.xml
echo -e "$result" >> whitelist.xml
echo "</issue>" >> whitelist.xml
```
把上述代码保存为脚本文件,比如`generate_whitelist.sh`,然后在终端中执行`bash generate_whitelist.sh`即可生成`whitelist.xml`文件。注意要替换`target_folder`为实际的目标文件夹路径。
阅读全文