如何在CSV文件上使用For-loop复制文件



i有一个.csv文件,其中第8列(命名filepath)包含我想将文件的文件位置复制到Linux中的主文件夹。现在,我想循环浏览此列,并使用CP功能将文件复制到我家中的文件夹。我试图做以下操作:

#!/bin/bash
while read filepath
do
    for filepath in $filepath
        cp $filepath /home/files
    done
done < files.csv

但是,这似乎不起作用。当我用回声语句替换" for循环"时,它没有打印出文件位置,而是整个文件的行。

感谢您的帮助,

如果是csv,则每个字段均由逗号分隔(默认情况下),您可以使用cut选择您需要的一个。

cut -d, -f8 files.csv | xargs -i cp {} /home/files/

您可以逐行读取CSV文件,然后使用数组中的8个元素:

#!/bin/bash
while read -ra cols
do
    cp "${cols[7]}" /home/files
done < files.csv

如果CSV文件是逗号界的,则使用:

while IFS=, read -ra cols
do
    cp "${cols[7]}" /home/files
done < files.csv

相关内容

  • 没有找到相关文章

最新更新