【发布时间】:2020-04-19 08:31:19
【问题描述】:
我需要根据孩子的文件夹名称将文件夹批量移动到父文件夹。解释起来有点抽象,所以这里举个例子。 (用于排序音乐)
AC DC - Backtracks [3 CD Deluxe Edition] (2009)
AC DC - Stiff Upper Lip (2000)
AC_DC - Back In Black
AC_DC - High Voltage
AC_DC - Highway to Hell
如果不存在父文件夹,则应创建父文件夹,在本例中为“AC DC”和“AC_DC”。每行的第一个“-”是父文件夹名称的限制符(可以有多个“-”,所以应该只是第一个)。创建或检测父文件夹后,应将原始文件夹移动到父文件夹。
我未能通过软件高级重命名器自动执行此操作。我对 Linux bash 解决方案以及 Windows CLI 或其他方案持开放态度。
【问题讨论】:
-
制作一个小的测试目录和文件,然后在linux环境下,像
echo mv "$file" "${file%%-*}/$file" When you have one that looks like it will work, remove theecho`一样进行实验,看看命令是否成功。您需要包括对代码的真实尝试,这样您未来的 Q 就不会因为缺乏细节而被投票关闭。请先阅读Help On-topic 和Help How-to-ask,然后再在此处发布更多问题。祝你好运。 -
嗯,所有这些空格和
()字符将使这变得更加困难。在您有一些代码进行研究后发布一个新的 Q。祝你好运。 -
感谢您与我们联系。抱歉,我没有在最初的帖子中提供尝试。不幸的是,我无法让您的解决方案发挥作用。但我最近发现的一个工具很成功:Brename。我用这个命令使用它:
brename -D -p '^(.*?) - ' -r '$1/'
标签: shell sorting command-line-interface rename directory-structure