2017-05-31 34 views
0

空の文字列アイテムをjqの配列から削除するにはどうすればよいですか?空の文字列をjqで配列から削除しますか?

これが私の最高の推測ですが、動作するように表示されません:

["bob", "tim"] 

エラー:

echo '["bob","","tim",""]' | jq '[ . [] | if length > 0 then . end ]' 

所望の出力を

試み 01 "他の空" を追加

. [] | if length > 0 then . end jq: error: Possibly unterminated 'if' statement at <top-level>, line 1: . [] | if length > 0 then . end jq: 2 compile errors 

答えて

3

は正しい結果

jq '[ .[] | if length > 0 then . else empty end ]' 

が代わりに選択使用を検討して取得します。

jq '[ .[] | select(length > 0) ]' 

そしてmap(x)は[。[] | x]、これを行うことができます。

jq 'map(select(length > 0))' 
関連する問題