如何在bash中使用curl/wget下载ENA接口动态生成的tsv文件
正确下载ENA Portal API生成的TSV文件的方法
错误原因
- 核心问题是Bash将URL中的
&字符识别为「后台执行命令」的特殊标识符,未加引号的URL会被自动拆分,导致请求参数缺失 - 第一次执行时多个参数被拆成独立后台任务,所以出现后台任务触发、主机解析错误的提示
- 第二次执行时只传递了第一个
accession参数,后续参数全部丢失,所以服务器返回Required String parameter 'result' is not present的报错
正确操作方案
curl下载方案
自动使用服务器返回的文件名保存
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'
自定义保存文件名(示例为保存为SRP002480_fastq.tsv)
curl -L 'https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0' -o SRP002480_fastq.tsv
wget下载方案
wget 'https://www.ebi.ac.uk/ena/portal/api/filereport?accession=SRP002480&result=read_run&fields=fastq_ftp&format=tsv&download=true&limit=0'
注意事项
所有包含&、?、空格等特殊字符的URL,在Bash中执行请求时都需要用单引号/双引号完整包裹,避免特殊字符被Bash解析导致请求异常。
内容的提问来源于stack exchange,提问作者kairilove09
相关产品推荐
相关产品推荐

