bash - bash while read 循环在第一行之后停止(根据 StackExchange 帖子进行更正后)
问题描述
我觉得这篇文章准确地描述了我的问题,我做了艾萨克建议的修改来解决它。那没有用,所以问题可能出在其他地方。
我编写了一个小脚本,旨在从文本文件中读取 ID,并使用 NCBI E-utils(命令行版本)执行数据库搜索和获取。它成功获取并输出第一个 fasta 序列,但随后退出。我不知道为什么。
while IFS='' read -r id || [ "$id" ]
do
echo "Getting fasta for ${id}"
esearch -db biosample -query "${id}" --api_key=$mykey | elink -target nuccore | efilter -source refseq | efetch -format fasta > "${id}.fasta"
done < arbank_all_samn_ids.txt
我也尝试像这样在我的文件中添加换行符:
[ -n "$(tail -c1 ids.txt)" ] && printf '\n' >> ids.txt
我的输入文件看起来像这样(大约 400 行):
SAMN04014842
SAMN04014843
SAMN04014844
SAMN04014845
STDOUT 现在看起来像这样(加上提取的单个文件:SAMN04014842.fasta)。有什么我可以添加来帮助解决问题的吗?)
[me@myserver]$ ./get_seqs.sh
Getting fasta for SAMN04014842
[me@myserver]$
无论如何,使用 E-Utils 获取非常挑剔,但此时我的问题是代码在文本文件的一行之后退出。这是我想要修复的部分(然后我将添加某种 try/except 块和休眠期来管理常量“500 Internal Server Error”)。
非常感谢您的帮助。我知道我一定是忽略了一些简单的事情,但是在尝试了一个小时不同的策略后我还没有找到它,所以我很感激一百万双眼睛。
解决方案
推荐阅读
- python - Python3 - 重定向的标准错误没有正确重置?
- oracle - 如何在单引号 sql 查询中使用管道?
- sass - @for 循环中的 SASS 宽度百分比
- reactjs - 断言失败但测试成功
- django - django wagtail 按站点 ID 添加页面
- python - 为什么填充词汇的困惑对于 nltk.lm bigram 来说是不定式的?
- javascript - 使用 K-means 对商业信息进行聚类以进行视觉映射
- azure-data-factory-2 - ADF 复制到 SQL 表而不创建源文件
- spring - Spring-Boot:@EnableRedisHttpSession 注释忽略配置文件(否定它们时)
- node.js - 离子启动在 MacOS Mojave 中给我一个错误