如何创建多个文件夹,其名称是现有文件名称的更改版本?

如何创建多个文件夹,其名称是现有文件名称的更改版本?

我有大约 100 个文件,文件名如下:“1999 - Film Title.avi”和“2025 - Another Film Title.avi”等。我希望将每个文件移动到单独的文件夹中,文件夹名称格式如下:“Film Title (1999)”和“Another Film Title (2025)”。这样的事可能吗,还是这将是一项费力的手动任务?

我正在使用 Ubuntu 服务器(Ubuntu 22.04.2 LTS)。

谢谢

答案1

bash...尝试进行一次试运行:

for f in *.avi
  do
    # Get the name part
    n="${f:7}"
    n="${n%%\.*}"
    # Get the year part
    y="${f:0:4}"
    # Define directory name
    d="${n} (${y})"
    # Create directory
    echo mkdir -pv -- "$d"
    # Move file into directory
    echo mv -nv -- "$f" "${d}/"
    done

如果输出听起来像您想要的,那么运行此操作来真正执行此操作:

for f in *.avi
  do
    n="${f:7}"
    n="${n%%\.*}"
    y="${f:0:4}"
    d="${n} (${y})"
    mkdir -pv -- "$d"
    mv -nv -- "$f" "${d}/"
    done

相关内容