Shell脚本不追加,而是删除内容

时间:2018-09-10 23:30:32

标签: bash shell sed sh cat

我的目标是使用.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个列表的结果。有人可以告诉我我在做什么错吗?

谢谢!

1 个答案:

答案 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

每次循环运行时,使用>覆盖文件。
同样,您的脚本看起来应该进行很大程度上的重写和简化。