首页 > 解决方案 > 如何将文件列表移动到目录列表中?

问题描述

我有这些文件来自一项研究,一些文件(样本)来自同一个组,所以我为每个组创建了一个文件夹,我想将文件移动到不同的文件夹。

我有一个表和一个列表,将每个样本(文件名)与其对应的组(目录名)相关联。如何使用 bash 脚本获取每个样本(第一列)并将其放入其组目录(第二列)?

标签: bashshellunix

解决方案


这是这种情况:

文件:带有文件和目录列表的 test.txt:

file1.txt;dir1
file2.txt;dir2
file3.txt;dir3

包含文件的目录:

./dir1
./dir2
./dir3
./file1.txt
./file2.txt
./file3.txt
./script.sh
./test.txt

bash脚本代码:

cat test.txt |
while read line; do
  IFS=';'
  set - $line
  mv $1 $2/
done

使用 bash 脚本后的目录结构:

bash脚本.sh

./dir1
./dir1/file1.txt
./dir2
./dir2/file2.txt
./dir3
./dir3/file3.txt
./script.sh
./test.txt

推荐阅读