我需要在Ubuntu 14.04中使用bash命令提供一些帮助。
我有一个包含许多子文件夹的文件夹,其中一些文件夹和文件名具有前导或尾随空格。我喜欢重命名这些文件夹和文件,但使用相同的文件名,只是没有空格,文件名的开头和结尾。像递归文件重命名或类似的东西。我已经用sed尝试了它,但我没有像它应该的那样运行它。
我希望有人可以帮助我。
答案 0 :(得分:0)
这应该做:
shopt -s extglob
while IFS= read -r -d '' f; do
d=${f%/*} b=${f##*/*([[:space:]])} b=${b%%+([[:space:]])}
echo mv -v -- "$f" "$d/$b"
done < <(
find -depth \( -name '[[:space:]]*' -o -name '*[[:space:]]' \) -print0
)
如上所述,它不会做任何事情,它只会回显将要执行的mv
。如果您对此感到满意,请移除echo
。