如何使用shell脚本将唯一文件复制到每个目录

jbose2ul  于 2022-12-19  发布在  Shell
关注(0)|答案(1)|浏览(126)

我有很多不同的名称和一些数字作为后缀名结束的源目录中的文件。我需要复制到3个不同的目录中的所有文件。而复制,每个文件应该是唯一的其他目录。
示例:

Source directory 
           1) Test01.csv
           2) Test02.csv
           3) Test03.csv
           4) Nontesting01.csv
           5) Nontesting02.csv
           6) Nontesting03.csv

      Destination directory
         Directory 1 : Test01.csv
                       Nontesting01.csv
         Directory 2 : Test02.csv
                       Nontesting02.csv
         Directory 3 : Test03.csv
                       Nontesting03.csv

我试过下面的代码,但它的复制每个目录1文件.

#!/bin/bash

   dest=/Users/myprofile/Testing_
   count=0
   for f in *.csv ; do (cp $f/*.csv* "${dest}"${count}/$f ) ; 
   ((count++))
   done

有人能帮助如何使用shell脚本实现这个场景吗?

icomxhvb

icomxhvb1#

根据Jetchisel所说的内容,代码应该进行调整,作为模式上的循环,如下所示:

#!/bin/bash

destPref="/Users/myprofile/Testing_"

for pattern in 01 02 03
do
    files=(*${pattern}.csv) 
    cp -v -- "${files[@]}" "${destPref}${pattern}/"
done

作为一般指导,如果您从编写代码逻辑开始

  • 在伪码中,
  • 对您尝试完成的每个任务都进行细粒度分析,
  • 以正确的顺序
  • 在正确的上下文中,

然后用语言表达出来,让它做你想让它做的事情......会,几乎是明确地告诉你,你需要为每一个编码什么,而不是如何编码。如何编码是编码的本质。
如果你给予一试,解决方案几乎会从页面上弹出来。
祝你学徒生涯好运!

相关问题