【问题标题】:Using BASH to Organize Files Using "_" Delimiter in File Name使用 BASH 在文件名中使用“_”分隔符来组织文件
【发布时间】:2013-03-19 15:27:33
【问题描述】:

我觉得我想做的事情很简单,但我是 shell 脚本的新手,所以如果你能给我任何帮助,我将不胜感激。

问题:我有一个包含各种文件类型(即“.jpg”、“.psd”、“.png”)文件的文件夹,需要将这些文件组织到子目录中。每个文件的文件名遵循相同的约定:“number_name.extension”。几个文件共享相同的“数字”值,我希望脚本做的是创建一个具有“数字”值的文件夹(如果它不存在)并将所有具有相同“数字”值的文件移动到所说的文件夹,无论文件类型/扩展名如何。

我知道 Bourne 可以做到这一点,但我很难理解它。我四处寻找类似的线程,但似乎没有什么能满足我的问题中的所有条件。任何帮助将不胜感激!

【问题讨论】:

    标签: shell filenames delimiter organization subdirectory


    【解决方案1】:

    怎么样:

    for f in *; do mkdir -p ${f%%_*}; mv $f ${f%%_*}; done
    

    这将保留完整的文件名,但也许你想修剪数字:

    for f in *; do 
      dir=${f%%_*}
      mkdir -p $dir
      mv $f $dir/${f#*_} 
    done
    

    【讨论】:

    • 这很简单,很漂亮,Pursell 先生。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多