2017-08-28 12 views
0

にアップロードする前に、私は、各ドキュメントの前に挿入ヘッダー弾性検索

{"index": {}} 

のようなヘッダを追加したい

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

バルクを使用する前に、以下の形式でndjsonファイルを持っています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のいずれかであるが、ウィンドウはそのままでは提供されない。 See the bash docs for example

これが一度だけの場合、おそらく最も速い解決策は、テキストエディタを使用して、マルチカーソル機能を使用して必要なアクション行を追加することです。

一方、Windowsに制限されていても、これをより頻繁に使用するためのより良いシェルが必要な場合は、cmder projectを参照すると、Windowsデスクトップに完全使用時のbash環境がもたらされますgit-for-windowsでパッケージ化されています。これにより、Linux以外の環境やMac環境でもこのようなスクリプト機能を使用できるようになります。