string – 从Linux中形成的文本文件中读取内容bash [复制]

string – 从Linux中形成的文本文件中读取内容bash [复制],第1张

概述参见英文答案 > How to concatenate string variables in Bash                                    28个 我正在尝试使用wget和url从数据库下载文件.例如. wget“http://www.rcsb.org/pdb/files/1BXS.pdb” 所以url的格式是这样的:http://www.rcsb.org/pd 参见英文答案 > How to concatenate string variables in Bash28个
我正在尝试使用wget和url从数据库下载文件.例如.

wget“http://www.rcsb.org/pdb/files/1BXS.pdb”

所以url的格式是这样的:http://www.rcsb.org/pdb/files/($IDnumber).pdb“

但我有很多文件需要下载;所以我写了一个bash脚本,从文本文件中读取ID_numbers,形成url字符串并通过wget下载.

!/bin/bashwhile read linedourl="http://www.rcsb.org/pdb/files/$line.pdb"echo -e $urlwget $urldone < ID_numbers.txt

但是,url字符串形成为

.pdb://www.rcsb.org/pdb/files/4H80

所以,.pdb充满了http.我无法弄清楚为什么.有没有人有想法?
我如何格式化它以便url

"http://www.rcsb.org/pdb/files/($IDnumber).pdb"


非常感谢.

注意.这个问题被标记为“如何在bash中连接字符串?”的副本但我实际上是在寻求别的东西.我在问这个问题之前就已经阅读了这个问题,事实证明我的问题是在windows中准备txt文件并不是真正的字符串.我编辑了问题标题.我希望现在更清楚了.

解决方法 听起来你的ID_numbers.txt文件有DOS / windows风格的行结尾(回车后跟换行字符)而不是普通的unix行结尾(只是换行).结果是read认为该行以回车符结束,$line实际上在末尾有一个回车符,并且嵌入在url中,导致各种混淆.

有几种方法可以解决这个问题.使用它时,您可以从变量中修改回车符:

url="http://www.rcsb.org/pdb/files/${line%$'\r'}.pdb"

或者你可以通过告诉它将回车计为空格来读取它(读取将从它读取的内容中修剪前导和尾随空格):

while IFS=$'\r' read line

或者您可以使用dos2unix(或 *** 作系统上的等效项)之类的命令来转换ID_numbers.txt文件.

总结

以上是内存溢出为你收集整理的string – 从Linux中形成的文本文件中读取内容bash [复制]全部内容,希望文章能够帮你解决string – 从Linux中形成的文本文件中读取内容bash [复制]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存