以下脚本查找当前目录中的所有文件(递归)并将短划线字符替换为文件名中的下划线字符
drawable-hdpi/file-name.png
在包含短划线的路径中给出一个文件,例如drawable_hdpi/file_name.png
,脚本将尝试将其重命名为sed
- 替换目录名称中的短划线以及文件名
我想避免修改目录路径,只重写文件名。
有关如何修改ipconfig /flushdns
用法以跳过目录路径的任何建议?
答案 0 :(得分:2)
shell有一些漂亮的字符串运算符来切断部分变量。您的shell手册页包含所有详细信息。以下是我将如何使用它们:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
heightMeasureSpec = MeasureSpec.makeMeasureSpec(999999, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
说明:
find . -type f -name '*.png' |
while read FILE; do
dir=${FILE%/*}
newfile=$(echo "${FILE##*/}" |sed -e 's/-/_/g')
mv "${FILE}" "${dir}/${newfile}"
done
从右边找到与dir=${FILE%/*}
glob匹配的最短部分,删除斜杠和文件名,给出目录。
/*
从匹配${FILE##*/}
的左侧删除最长的部分,即只留下文件名。