Bash脚本将JSON变量输出到文件

Bash脚本将JSON变量输出到文件,json,linux,bash,Json,Linux,Bash,我在Ubuntu的命令行中使用twurl连接到Twitter流API,并使用解析结果JSON。我有以下命令,返回从伦敦发送的推文文本: twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text' 这非常有效,但我正在努力将结果输出到一个名为london.txt的文件中。我尝试了以下方法,但仍然没有成功: twurl -t

我在Ubuntu的命令行中使用twurl连接到Twitter流API,并使用解析结果JSON。我有以下命令,返回从伦敦发送的推文文本:

twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text'
这非常有效,但我正在努力将结果输出到一个名为london.txt的文件中。我尝试了以下方法,但仍然没有成功:

twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text' > london.txt
由于我对Bash脚本编写相当陌生,我肯定我误解了“>”和“>>”的正确用法,因此如果有人能为我指出正确的方向,那就太棒了

twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text' > london.txt
它将替换粘贴在其上的每一行。但如果您使用
>
,它会将下一个写入操作附加到文件的末尾。因此,请尝试下面的例子,我相信它会起作用

twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text' >> london.txt
此外,您还可以使用
tee
命令检查重定向旁边正在打印的内容

twurl -t -d locations=-5.67,50.06,1.76,58.62 language=en -H stream.twitter.com /1.1/statuses/filter.json | jq '.text'| tee london.txt

command>file
截断文件并将命令输出重定向到此文件。
>
也会执行相同的操作,但它会追加而不是截断。移除重定向部分,然后查看正在打印的内容。结果就是你应该在你的文件中看到的。谢谢,我非常理解。我的问题是,这个命令根本不向文件输出任何内容,当您运行该命令时,您在
london.txt
中得到了什么?因为当你在没有重定向的情况下运行终端时,你应该得到打印到终端上的任何东西。什么都没有!如果我不使用
>london.txt
运行它,我会得到我期望的结果。jq“.text”只将tweet的文本返回到终端,但我无法将任何内容保存到文件中……如果我们可以自己测试,而不需要设置Twitter帐户,那就太好了。您是否可以将返回值的样本复制到某个公共可用的地方(理想情况下,是一个允许原始访问的粘贴箱,这样我们就可以运行
curl…| jq
,而不是
twurl…|jq
来重现您的结果)?感谢您的回答!不幸的是,同样的问题。什么都没有!请检查最后一个@DanBSame结果。这可能与需要以特定方式关闭的连接有关吗?是的,这可能是@DanB的问题所在,但在这种情况下,我实际上对面向连接的问题没有任何了解,因此我认为我不会对此有多大帮助。很抱歉占用你宝贵的时间,我只是想帮你。