【问题标题】:macOS - Creating Folders based on part of a file name (part 2)macOS - 根据部分文件名创建文件夹(第 2 部分)
【发布时间】:2019-10-25 03:28:14
【问题描述】:

这是对另一个线程 (mac OS – Creating folders based on part of a filename) 的后续跟进

我正在运行 macOS,并正在寻找一种快速排序数千个 JPG 文件的方法。我需要根据部分文件名创建文件夹,然后将这些文件移入其中。

简单地说,我想把这些文件:

12345E.JPG
12345E_1.JPG

99876S.JPG
99876S_1.JPG
99876S_2.JPG

进入这些文件夹:

12345E
99876S

请记住,名称中“x”和“y”部分的长度可能不同。

在 maxOS 中是否有自动解决方案?我尝试过使用 Automator 和 Terminal,但我不是程序员,所以我做得不好。

我试过这个:

find . -type f -name "*jpg" -maxdepth 1 -exec bash -c 'mkdir -p "${0%%_*}"' {} \; \
-exec bash -c 'mv "$0" "${0%%_*}"' {} \;

但它似乎不喜欢 .JPG 与 .jpg

find . -type f -name "*jpg" -maxdepth 1 -exec bash -c 'mkdir -p "${0%%_*}"' {} \; \
-exec bash -c 'mv "$0" "${0%%_*}"' {} \;

【问题讨论】:

    标签: bash macos terminal


    【解决方案1】:

    试试

    find . -type f -name "*jpg" -o -name "*JPG" -maxdepth 1 -exec bash -c 'mkdir -p "${0%%_*}"' {} \; \
        -exec bash -c 'mv "$0" "${0%%_*}"' {} \;
    

    -o 表示或。

    或者,您可以只运行该命令两次,一次用于 .jpg 文件,一次用于 .JPG 文件。

    【讨论】:

    • @Benjamin :它将 12345E_1.jpg 和 12345E_2.jpg 放入名为“12345E”的新文件夹中,但将 12345E.jpg 留在新文件夹之外。有关如何将 12345E.jpg 放入“12345E”文件夹的任何建议?
    • 它将 12345E_1.jpg 和 12345E_2.jpg 放入名为“12345E”的新文件夹中,但将 12345E.jpg 留在新文件夹之外。有关如何将 12345E.jpg 放入“12345E”文件夹的任何建议?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多