将文件移动到与文件同名的新文件夹?

时间:2015-10-14 13:59:12

标签: bash shell terminal

如何将一组共享文件名前9个字符的文件移动到同名9个字符的已创建文件夹

v

我需要创建每个文件夹中包含相同9个字符的新文件夹    组然后将每个组文件移动到这些文件夹中。    谢谢

1 个答案:

答案 0 :(得分:7)

只提取前9个字符作为目录名称。在bash中,最简单的方法是使用正则表达式匹配参数子字符串扩展。

for f in *; do
    # [[ $f =~ ^(.{9}) ]]
    # dir=${BASH_REMATCH[1]}
    dir=${f:0:9}
    mkdir -p "$dir" && mv "$f" "$dir"
done