【发布时间】:2020-12-15 18:19:51
【问题描述】:
我想在我用来在 Elasticsearch 的 API 中发送 _bulk od 文档的 Bash 脚本中的 JSON 中插入一个随机字符串:
SECONDS=0;
for i in {0..1000}
do
echo "Number: $i \n"
curl --location --request POST 'localhost:9000/_bulk' \
--header 'Content-Type: application/json' \
--data-raw '{"index": {"_index": "yotam-les", "_type": "_doc", "_id": "A975463f711"}}
{"Amount": "3", "Quantity": "2", "Id": "A975463f711", "Client_Store_sk": "1109"}
{"index": {"_index": "yotam-les", "_type": "_doc", "_id": "975463943"}}
{"Amount": "7", "Quantity": "2", "Id": "975463943", "Client_Store_sk": "1109"}
'
done
echo "\n took " $SECONDS "seconds"
exit 0
例如,在这个 bash 脚本中,我想做类似的事情
“_id”:“
其中“_id”:“A975463f711”这部分是。 当然,我希望每次迭代都能随机生成 ID。
为了创建一个随机字符串,我知道我可以这样做:
chars=abcd1234ABCD
echo -n "${chars:RANDOM%${#chars}:1}"
但是如何在 JSON 中注入呢?
更清楚我的问题是当我尝试这样做时:
"_id": "${chars:RANDOM%${#chars}:1}"
因为 --data-raw '...' - 它只能包含原始字符串
感谢您的帮助。
【问题讨论】:
-
您遇到了哪些具体问题?您需要知道如何生成随机字符串吗?或者如何将该字符串插入到 JSON 文档中?在检查之前是否已被问过之后,一次只问一个问题。
-
如how to generate 10 million random strings in bash处给出了如何在bash中批量生成随机字符串
-
...和what linux command can add new filed key value pair to a json file 告诉您如何将新数据插入JSON。
-
因此,一个很好的起点是尝试将这两个问题的答案结合起来,然后询问您在该实施中遇到的具体问题,如果您遇到没有任何问题。
-
也许达到了 bash 既不是最简单也不是最清晰的地步。作为使用 php 的示例,就像您的示例一样,几乎可以立即使用。