如何将一组共享文件名前9个字符的文件移动到同名9个字符的已创建文件夹中
example
I have a folder containing number of files with various names each
group of files begin with same 9 characters ex:
first group [HD9523587_352, HD9523587_258, HD9523587_785 ,HD9523587_473]
second group[Hip046329_258, Hip046329_364, Hip046329_681, Hip046329_235]
and so on
Run Code Online (Sandbox Code Playgroud)
我需要使用每组相同的9个字符创建新文件夹,然后将每个组文件移动到这些文件夹中.谢谢
只需提取前9个字符作为目录名称即可.在bash,最简单的方法是使用正则表达式匹配参数子串扩展.
for f in *; do
# [[ $f =~ ^(.{9}) ]]
# dir=${BASH_REMATCH[1]}
dir=${f:0:9}
mkdir -p "$dir" && mv "$f" "$dir"
done
Run Code Online (Sandbox Code Playgroud)