从文件名中删除前导和尾随空格
Remove leading and tailing whitespaces from filename
我需要一些关于 Ubuntu 14.04 中的 bash 命令的帮助。
我有一个包含许多子文件夹的文件夹,并且一些文件夹和文件名有前导或尾部空格。我喜欢重命名这些文件夹和文件,但使用相同的文件名,只是文件名的开头和结尾没有空格。就像递归文件重命名或类似的东西。我已经用 sed 试过了,但我没有得到它应该的 运行。
我希望有人能帮助我。
应该这样做:
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
。
我需要一些关于 Ubuntu 14.04 中的 bash 命令的帮助。
我有一个包含许多子文件夹的文件夹,并且一些文件夹和文件名有前导或尾部空格。我喜欢重命名这些文件夹和文件,但使用相同的文件名,只是文件名的开头和结尾没有空格。就像递归文件重命名或类似的东西。我已经用 sed 试过了,但我没有得到它应该的 运行。
我希望有人能帮助我。
应该这样做:
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
。