如何添加文件的内容,作为终端命令的一部分



我有以下命令:

curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"sort": [
{ "account_number": "asc" }
],
"from": 10,
"size": 10
}
'

我正试着把它分成两部分,一部分将保存在一个文件中。所以我可以这样运行:

curl -X GET "localhost:9200/bank/_search?pretty" file.txt

我怎样才能做到这一点?

要发送来自文件的数据,而不是命令行参数,请使用-d@file.txt:

curl -X GET "localhost:9200/bank/_search?pretty" -d@file.txt

来自curl(1)手册页:

如果您以字母@开始数据,其余的应该是a如果希望curl读取数据,则使用-来自stdin的数据。从名为"foobar"的文件发布数据因此,-d,--data,@foobar。当-d时,--data为被告知从这样的文件中读取,回车和new‐行将被剥离。

对于JSON,像这样剥离换行符并不重要。

可以就地读取文件

curl -X GET "localhost:9200/bank/_search?pretty" $(cat file.txt)

最新更新