2017-08-28 80 views
0

之前,我有以下格式的ndjson文件插入頭部的每個文件上傳到彈性搜索

{"field1": "data1" , "field2": "data2"} 
{"field1": "data1" , "field2": "data2"} 
.... 

我希望每個文檔前添加頁眉像

{"index": {}} 

使用批量之前操作 我發現了一個類似的問題:Elasticsearch Bulk JSON Data

解決方法是這個jq命令:

jq -cr ".[]" input.json | while read line; do echo '{"index":{}}'; echo $line; done > bulk.json 

但我得到這個錯誤:

'while' is not recognized as a internal or external command 

我在做什麼錯?進出口運行的Windows 還是有更好的解決辦法? 謝謝

回答

1

您樣本中的while是一種構造,通常內置在一個開發友好的外殼中,例如, sh,bash或zsh,但windows並不提供開箱即用的功能。 See the bash docs for example

因此,如果這是一個一次性的事情,可能是最快的解決方法就是使用一些文本編輯器,並使用一些多光標功能添加所需的行動方針。另一方面,如果您僅限於Windows,但想要更經常使用某種更好的外殼程序,則應該查看cmder project,該程序在使用完整版時爲您的Windows桌面帶來了bash環境與git-for-windows打包的版本。這應該讓你即使在非Linux或Mac環境中使用這樣的腳本功能。