【问题标题】:How can I download using a bash script from a CSV file with URLs?如何使用 bash 脚本从带有 URL 的 CSV 文件下载?
【发布时间】:2016-06-17 14:50:12
【问题描述】:

我有一个这种格式的 csv 文件

http://nex.s3.amazonaws.com/tt/01.nc,d9aa8c1f1a6ea5f7fd52b0b9a02fc336
http://nex.s3.amazonaws.com/tt/02.nc,fe12be292a322c34bbec1a82bd55e77d

我想解析 CSV 文件,读取第一列,并以这种方式 WGET 每个 URL。第二列没有用:

wget --user=NEXUSER --password="" http://nex.s3.amazonaws.com/tt/01.nc

到目前为止,我有这个:

#!/bin/bash
INPUT='testfile.csv'
IFS=','

while read url sum
do
        echo $url
        echo $sum
        wget --user=NEXGDDP --password="" $url
done

我该怎么做?

【问题讨论】:

    标签: bash csv


    【解决方案1】:

    你可以简单地使用:

    cut -d, -f1 testfile.csv | xargs wget --user=NEXUSER --password=""
    

    【讨论】:

      【解决方案2】:

      您唯一缺少的是将输入从文件重定向到循环:

      #!/bin/bash
      INPUT='testfile.csv'
      
      while IFS=, read url sum
      do
              echo "$url"
              echo "$sum"
              wget --user=NEXGDDP --password="" "$url"
      done < "$INPUT"
      

      一般来说,最好只在必要时更改IFS;在这里,只有read 命令需要更改值。此外,请务必引用参数扩展,除非您有充分的理由不这样做。

      【讨论】:

      • 谢谢...有道理。这是我的第一个 bash 脚本。
      【解决方案3】:

      或者,你可以使用这个:

      for url in `cut -d',' -f1 file.csv`; do
         wget --user=NEXGDDP --password="" "$url"
      done
      

      【讨论】:

        猜你喜欢
        • 2014-10-15
        • 2023-01-04
        • 1970-01-01
        • 2016-09-13
        • 1970-01-01
        • 2018-09-23
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多