jqの配列から空白の文字列アイテムを削除するにはどうすればよいですか?
これは私の最善の推測ですが、機能していないようです。
試みる
echo '["bob","","tim",""]' | jq '[ . [] | if length > 0 then . end ]'
必要な出力:
["bob", "tim"]
エラー:
. [] | 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
「elseempty」を追加すると正しい結果が得られます
jq '[ .[] | if length > 0 then . else empty end ]'
代わりにselectの使用を検討してください。
jq '[ .[] | select(length > 0) ]'
また、map(x)[.[] | x]
はと同等であるため、これを行うことができます。
jq 'map(select(length > 0))'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加