管道卷曲输出,Grep 以 Ruby 中的 Txt 文件结尾
Pipe Curl Output with Grep ending o Txt File in Ruby
我在 ruby 中使用 curl 时遇到问题。我想要 运行 一个 ruby 脚本,它应该像这样存储一个 JSON 类型的对象
{
"remote": [
{"name": "cast-1",
"id": 1212
},
{"name": "cast-1",
"id": 1214
},
{"name": "home-11",
"id": 3212
},
{"name": "cast-3",
"id": 3212
},
{"name": "cast-3",
"id": 3213
},
{"name": "cast-4",
"id": 4211
}
]
}
在文本文件中。我映射并搜索了 curl 输入以获取所需的条目。
现在,当我 运行 脚本时,我的 txt 文件弹出为空。
我尝试过的例子
#ruby
`curl -m 10 -s -H '[...]' "https://example_with_json_file.com" | jq -r .remote | group_by(.name) | map({ (.[0].name): map(.id) }) | "\(.[])" | grep '3\|4\|11' > file.txt`
foo = []
File.open(file.txt) do |file|
foo = file.readlines
end
[...]
运行在我的终端作品中输入以上内容。我尝试在 ruby 示例中使用 Kernel.system 订单系统。没有任何效果。
如何将此输出通过管道传输到 txt 文件
{"cast-3":[3212,3213]}
{"cast-4":[4211]}
{"home-11":[3212]}
或者一般来说,是否可以 运行 在一行中输入 curl,可以使用 ruby 执行?
总是最好用一种语言做事。喜欢:
response = HTTParty.get('https://path/to/json')
JSON.parse(response)
...
如果您想将其与 Bash 混合使用,请尝试:
bar = `curl -m 10 -s -H '[...]' "https://example_with_json_file.com" | jq -r .remote | group_by(.name) | map({ (.[0].name): map(.id) }) | "\(.[])" | grep '3\|4\|11'`
foo = bar.split(/\n/)
File.write('/path/to/file', bar)
我在 ruby 中使用 curl 时遇到问题。我想要 运行 一个 ruby 脚本,它应该像这样存储一个 JSON 类型的对象
{
"remote": [
{"name": "cast-1",
"id": 1212
},
{"name": "cast-1",
"id": 1214
},
{"name": "home-11",
"id": 3212
},
{"name": "cast-3",
"id": 3212
},
{"name": "cast-3",
"id": 3213
},
{"name": "cast-4",
"id": 4211
}
]
}
在文本文件中。我映射并搜索了 curl 输入以获取所需的条目。 现在,当我 运行 脚本时,我的 txt 文件弹出为空。 我尝试过的例子
#ruby
`curl -m 10 -s -H '[...]' "https://example_with_json_file.com" | jq -r .remote | group_by(.name) | map({ (.[0].name): map(.id) }) | "\(.[])" | grep '3\|4\|11' > file.txt`
foo = []
File.open(file.txt) do |file|
foo = file.readlines
end
[...]
运行在我的终端作品中输入以上内容。我尝试在 ruby 示例中使用 Kernel.system 订单系统。没有任何效果。
如何将此输出通过管道传输到 txt 文件
{"cast-3":[3212,3213]}
{"cast-4":[4211]}
{"home-11":[3212]}
或者一般来说,是否可以 运行 在一行中输入 curl,可以使用 ruby 执行?
总是最好用一种语言做事。喜欢:
response = HTTParty.get('https://path/to/json')
JSON.parse(response)
...
如果您想将其与 Bash 混合使用,请尝试:
bar = `curl -m 10 -s -H '[...]' "https://example_with_json_file.com" | jq -r .remote | group_by(.name) | map({ (.[0].name): map(.id) }) | "\(.[])" | grep '3\|4\|11'`
foo = bar.split(/\n/)
File.write('/path/to/file', bar)