首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环尽管行,值的Curl,存储该值

循环尽管行,值的Curl,存储该值
EN

Stack Overflow用户
提问于 2022-10-11 19:20:30
回答 1查看 30关注 0票数 0

我试图读取一个文件,其中的每一行都是一个CVE ID。对于每个CVE,我想做一个卷曲来得到它的严重性,然后存储一个新的CSV文件,格式是cve-id,cve-严重性。

下面是我使用的脚本,它正确地读取ID,但没有正确地进行curl调用。当我运行它时,它只输出每个curl调用的空值。

我试过用倒计时代替$(),但是结果是一样的。我在这里做错什么了?

代码语言:javascript
复制
#!/bin/bash
 
filename="cves.csv"
 
while read line
do

    echo "$line"
    cve_result=$(curl -s "https://cve.circl.lu/api/cve/${line}")
    echo "$cve_result"

done < $filename

还尝试了这些变化,结果都是相同的(空的):

代码语言:javascript
复制
cve_result=$(curl -s "https://cve.circl.lu/api/cve/${line}")
cve_result=`curl -s "https://cve.circl.lu/api/cve/${line}"`
cve_result=$(curl -s "https://cve.circl.lu/api/cve/$line")
cve_result=`curl -s "https://cve.circl.lu/api/cve/$line"`
cve_result=$(curl -s https://cve.circl.lu/api/cve/$line)
cve_result=`curl -s https://cve.circl.lu/api/cve/$line`

下面是CSV文件的示例:

代码语言:javascript
复制
CVE-2014-0114
CVE-2014-9970
CVE-2015-1832
CVE-2015-2080
CVE-2015-7521
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-11 19:36:24

您的代码适用于我(即,每个curl调用都会提取一堆数据)。

如果我将我的(linux)文件转换为包含windows/dos行结束(\r\n),那么curl调用不会生成任何内容。

此时,我猜想您的输入文件有windows/dos行结束(您可以通过运行head -2 cves.csv | od -c来验证,并且应该在每一行的末尾看到序列\r \n )。

假设这是您的问题,那么您需要删除\r字符;下面是几个选项:

  • dos2unix cves.csv -只需运行一次,因为这将更新file
  • curl ... ${line//$'\r'/}" - use参数替换以去掉\r

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74033116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档