首页 > 解决方案 > BASH 根据部分文件名将文件移动到相应的目录中

问题描述

我有名称相似但 ID 不同的文件:

T1_6269.dwi.RAS.correct.atlas.FA.smooth2.0mm.nii.gz
T1_6270.dwi.RAS.correct.atlas.FA.smooth2.0mm.nii.gz
.
.

我还有一些文件夹,我需要根据前 7 个字符将每个文件传输到其中。示例文件夹:

T1_6269
T1_6270
.
.

我尝试使用 mv * 和 cp * 但继续将所有文件移动到一个目录中。帮助表示赞赏。

标签: bashssh

解决方案


您可以编写for循环和解析文件名。例如:

for f in *; do id=${f:0:7}; mv $f $id/; done

推荐阅读