【问题标题】:Download tsv file from link which generates the file upon request, using bash使用 bash 从根据请求生成文件的链接下载 tsv 文件
【发布时间】:2021-12-27 02:15:23
【问题描述】:

我需要下载从这样的链接生成的 .txt 文件: https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0 但我需要在 bash shell 中下载它。它在 Firefox 上运行良好,在我尝试 wget 和 curl 无济于事的 shell 上。我在 Stack Overflow 和其他页面中阅读了很多类似的问题,尝试了我能找到的所有内容,但找不到解决方案。 例如:

curl https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0      

这是输出,没有下载文件:

[1] 1094                                                                                                                                       
[2] 1095                                                                                                                                       
[3] 1096                                                                                                                                       
[4] 1097                                                                                                                                       
[5] 1098                                                                                                                                       
[2]   Done                    result=read_run                                                                                                  
[3]   Done                    fields=fastq_ftp                                                                                                 
[4]-  Done                    format=tsv                                                                                                       
(base) user@DESKTOP-LV4SKHQ:/mnt/c/Users/conog/Desktop/prova$ curl: (6) Could not resolve host: www.ebi.ac.uk                              
                                                                                                                                               
[1]-  Exit 6                  curl https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480                                         
[5]+  Done                    download=true 

另一个例子,在我在这里阅读了几篇文章之后:

curl -O -L https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0
[1] 1056                                                                                                                                       
[2] 1057                                                                                                                                       
[3] 1058                                                                                                                                       
[4] 1059                                                                                                                                       
[5] 1060                                                                                                                                       
[2]   Done                    result=read_run                                                                                                  
[3]   Done                    fields=fastq_ftp                                                                                                 
[4]   Done                    format=tsv                                                                                                       
[5]+  Done                    download=true                                                                                                    
(base) gsoletta@DESKTOP-LV4SKHQ:/mnt/c/Users/conog/Desktop/prova$   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                                                                                                                             
                                 Dload  Upload   Total   Spent    Left  Speed                                                                  
100    49  100    49    0     0     68      0 --:--:-- --:--:-- --:--:--    67                                                                 
                                                                                                                                               
[1]+  Done

最后一个下载一个没有扩展名的 49 字节文件,名为 filereportaccession=SRP002480,内容为:“必需的字符串参数 'result' is not present”。

我还要补充一点,我是 bash 的新手。 我能做什么?

谢谢!

【问题讨论】:

    标签: bash url curl download wget


    【解决方案1】:

    它对我有用:

    $ curl -s 'https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0'
    run_accession   fastq_ftp
    SRR1620013  ftp.sra.ebi.ac.uk/vol1/fastq/SRR162/003/SRR1620013/SRR1620013_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR162/003/SRR1620013/SRR1620013_2.fastq.gz
    SRR1620014  ftp.sra.ebi.ac.uk/vol1/fastq/SRR162/004/SRR1620014/SRR1620014_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR162/004/SRR1620014/SRR1620014_2.fastq.gz
    ...
    $ wget -O filereport.tsv 'https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0'
    --2021-11-15 17:51:48--  https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0
    Resolving www.ebi.ac.uk (www.ebi.ac.uk)... 193.62.193.80
    Connecting to www.ebi.ac.uk (www.ebi.ac.uk)|193.62.193.80|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [text/plain]
    Saving to: ‘filereport.tsv’
    ...
    2021-11-15 17:51:51 (831 KB/s) - ‘filereport.tsv’ saved [675136]
    

    您的问题是您没有在 URL 周围加上引号。当您不引用 URL 时,其中的 &s 会导致每个 URL 参数被 bash 解释为单独的命令。

    【讨论】:

    • 谢谢!!!我想多了,这只是引号。我看到这个命令使用了不带引号的 URL,我认为这样使用它是可以的,但是我的链接中有 &。祝你有美好的一天!
    • 是的,除非有查询字符串,否则 URL 通常可以不加引号。
    猜你喜欢
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多