在使用Bash脚本从excel文件中提取目录名称的同时,如何从目录中复制特定文件

时间:2019-05-26 10:24:12

标签: bash csv

我是Bash的新手,我有一个存储在excel文件中的目录名称列表。我想找到这些目录(它们在计算机上的不同位置),然后从每个目录中复制特定文件(以特定结尾结尾的4个文件的列表)到远程计算机。

例如:

对于Excel工作表上的目录名称-“ NA123”,我想找到它并将其部分内容复制到远程计算机,例如,复制以下文件:samples-sheet.csv,toInfo.xml,文件夹名称“ NA123”下的newfiles.gz,todo.csv到远程计算机。

我如何开始这样做?

****编辑以举例说明如何实现*****

csv的简短示例如下:

         A
1  14RD00129_TS1_01
2  SD-2015-06_01
3  US-005
4  RA99

csv上的所有名称都是可以在/home/bella/samples下的3个不同文件夹下找到的目录:有些位于/home/bella/samples/gruop_1,有些位于:/home/bella/samples/gruop_2,有些位于:{ {1}}

因此,首先我需要遍历csv文件,以在我的计算机上找到匹配目录,然后需要将4个特定文件复制到具有相同目录名的远程计算机上。希望这更清楚...

2 个答案:

答案 0 :(得分:1)

我想您的CSV文件应该只包含目录名称,因为只有一列。我假设CSV中没有标题行(在您的示例中为let conf = false; do { await this.sleep(2 * 1000); conf = await this.checkSession(hash); console.log(conf); } while (!conf); ),也没有行号。您可以以此为起点:

A

答案 1 :(得分:0)

基本上,您可以执行以下操作:

# create the directory on the remote:
ssh remote-ip 'mkdir -p NA123'
# copy the files to the remote in the directory just created
for f in samples-sheet.csv toInfo.xml newfiles.gz todo.csv; do scp $f remote-ip:NA123/; done