如何复制目录中的多个文件并将每个文件移动到正确的目录中

How to copy multiple files in directory and move each into their correct directory

Unix shell ksh

我创建了一个文件列表,目前正在尝试将每个文件复制到它们的正确路径。

(mylist)
-1111
-2222
-3333
-4444
-5555

当前目录 /sample/dir/unknown/

-1111fileneeded.txt
-2222fileneeded.txt
-3333fileneeded.txt
-4444fileneeded.txt
-5555fileneeded.txt
-6666dontneed.txt
-7777dontneed.txt
-8888dontneed.txt
...etc

每个文件的前 4 个字符与其正确路径相匹配。

/sample/dir/1111/
/sample/dir/2222/
/sample/dir/3333/
/sample/dir/4444/

这是我目前拥有的..

for i in `cat mylist`
do echo "$i"
 find /sample/dir/unknown/mylist* 

这是我有点卡住的地方,我试图弄清楚需要做什么才能将每个文件移动到正确的目录中。

这应该有效

#!/bin/ksh
while IFS=\| read -r line; do
   dir=`echo $line | cut -c 2-5`
   mv "$line /sample/$dir/$line"
done > filelist.txt

IFS 是转义特殊字符,以防万一。

cut -c 2-5 将所有字符从 2 到 5(因为文件名开头有破折号)

如果还有不明白的地方,请告诉我。