重命名目录

Renaming directories

我有大约 230 个此类目录 (1367018589_name_nameb_namec_named),想将它们重命名为 (Name Nameb Namec Named)。

更准确地说:

  1. 删除号码
  2. 用空格替换下划线(数字后面的第一个下划线除外)
  3. 第一个字母变成大写字母

首选简单的一行,因为我在 Linux 和 bash 方面是个新手。 Bash 脚本也不是问题 - 非常感谢您对如何使用它做一个简短的解释。 这意味着一旦我知道了命令我就能理解,但是我自己想出问题来了。

非常感谢andvance

在一行中(更新为每个单词的第一个字母大写——第一次错过了):

$ for f in * ; do g=$(echo $f | sed s/[0-9_]*// | sed s/_/\ /g | sed "s/\b\(.\)/\ug") ; echo "mv \"$f\" to \"$g\"" ; done

一旦你对它会做你想做的事情感到高兴改变

echo "mv \"$f\" to \"$g\""

mv -i "$f" "$g"

注意,-i 选项是为了避免意外覆盖文件的情况(例如,如果您有文件 123_test345_test