繁体   English   中英

用bash读取文本文件并发送curl查询

[英]Reading text file with bash and sending curl query

我有一个文本文件,其中包含要分类的数据:

facture
iphone
comment acceder

我有一个bash脚本,每行读取我的文本文件行,然后使用curl将每一行发送到用Python 3.4编写并在Docker容器中运行的分类器。 这是脚本的代码:

old_IFS=$IFS
IFS=$'\n'
for line in $(cat file.txt) do
    echo $line
    curl -d q=$line localhost:8099/v2
    echo $'\n'
    sleep 1
done
IFS=$old_IFS

localhost:8099 / v2是Docker容器的地址。 对于每个查询,分类器都会显示属于已定义类的概率(在本例中为3类:助手,actu和精品店)。

让我们看一下命令的输出

curl -d q=facture localhost:8099/v2

{"classes": ["assistance"], "levels": {"assistance": 0.915, "boutique": 0.085, "actu": 0.0}}

但是,当我运行脚本时,我得到以下输出:

facture
{"classes": ["boutique", "actu", "assistance"], "levels": {"boutique": 0.333, "actu": 0.333, "assistance": 0.333}}

iphone
{"classes": ["boutique", "actu", "assistance"], "levels": {"boutique": 0.333, "actu": 0.333, "assistance": 0.333}}

comment acceder
{"classes": ["assistance"], "levels": {"assistance": 0.886, "boutique": 0.113, "actu": 0.0}}

概率不正确,这使我认为脚本无法很好地读取查询。 该假设与脚本正确打印该行的事实相矛盾。 我首先想到了编码问题,但是我所有的文件都使用utf8,终端也是如此。

所以我的问题是,我的脚本在读取文件内容时是否做错了什么?

尝试: q="facture"

我相信您的控制台需要假设字符串为键。 由于无法识别模式,因此默认情况下会搜索所有模式?

我想可能是您的file.txt不是Unix格式,请尝试执行

dos2unix file.txt

第一

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM