从文件名中删除前导和尾随空格

时间:2015-03-01 18:11:25

标签: linux bash shell unix filenames

我需要在Ubuntu 14.04中使用bash命令提供一些帮助。

我有一个包含许多子文件夹的文件夹,其中一些文件夹和文件名具有前导或尾随空格。我喜欢重命名这些文件夹和文件,但使用相同的文件名,只是没有空格,文件名的开头和结尾。像递归文件重命名或类似的东西。我已经用sed尝试了它,但我没有像它应该的那样运行它。

我希望有人可以帮助我。

1 个答案:

答案 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