我的目标是使用.txt文件中的用户名列表卷曲我新创建的API,然后接收API响应,将其保存到.json,然后最后创建.csv(以简化阅读) 。
这是我的脚本:
echo "$result" | jq 'del(.id, .Time, .username)' | jq '{andres:[.[]]}' > newresult
输入:sudo bash script.sh usernames.txt
Usernames.txt:
test1
test2
test3
test4
结果:
"id","username"
4,"test4"
所需结果:
"id","username"
1,"test1"
2,"test2"
3,"test3"
4,"test4"
它将根据需要创建文件,甚至保存结果。但是,它仅输出1个结果。我可以在运行时打开CSV / Json,然后看到它正在查询不同的用户名,但是当它启动另一个查询而不是将其全部附加到同一文件时,它将删除Newresult,Result.json,Results.csv,并创建新的,最后,我只得到一个用户名的结果,而不是例如5个列表的结果。有人可以告诉我我在做什么错吗?
谢谢!
答案 0 :(得分:0)
使用>>
附加到文件。试试:
: >results.csv
for ligne in $(seq 1 "$nbrlignes");
do
...
jq -r '
["id", "username"] as $headers
| $headers, (.andres[][] | [.[$headers[]]]) | @csv
' < result.json >> results.csv
done
每次循环运行时,使用>
覆盖文件。
同样,您的脚本看起来应该进行很大程度上的重写和简化。