私はxmlから変換されたjsonファイルを持っています。私は、この問題を解決するためにbashスクリプトでjqを使用しようとしています。素晴らしい作品としかし、bashで、私はこれが無い決意で動作するように取得しようとする置換を使用しなければならなかったこれはしばらくの間でした
完璧な出力を示しjq -r '.users.user[0].id."#text"' cosmology18.json
コマンドラインで
現在。
最初私は
baselineresult=$(jq -r '.users.user[1].cpid."#text"' $1)
ユーザデータを読み取るために最初の部分を動作するようにその一部を得たが、私はデータをエコーすることが可能になる私は、それぞれが増加する$basecount
を追加しようとすると、しかし完全に
を受け私はそれを動作させることができませんでしたので、私は、ユーザの[]に$ basecountを取得するために代用を使用しなければならなかったこのクレイジーメソッドを構築しました。
bracea="["
braceb="]"
dquote='"'
squote="'"
pound="#"
echo test of command is jq -r "${squote}.users.user${bracea}${basecount}${braceb}.cpid.${dquote}#text${dquote}${squote} $1"
baselineresult=$(jq -r "${squote}.users.user${bracea}${basecount}${braceb}.cpid.${dquote}${pound}text${dquote}${squote} $1")
echo $baselineresult
コマンドは、コマンドラインで入力したコマンドと一致します。
しかし、私はこれを取得する:コマンドの
テストはJQ -r 'で.users.user [0] .cpid "#テキスト"。' cosmology18.json JQ:エラー:構文エラー、予期しないINVALID_CHARACTER、 '[0] .cpid .users.user "#テキストは"。' cosmology18.json JQ:$端(?Unixシェルのクォートの問題)でのを期待して、1行目1コンパイルエラー
を任意のアイデアが...ありましたこれで今8時間。 出力がjq -r '.users.user [0] .idのコマンドラインで使用しているIDと同じであるため、この不正な文字は見つからないようです。 "#text"' cosmology18.json
に残念ですJQ -r「$ {squote} .users.userの$ {bracea} $ {basecount} $ {braceb } .cpid。"$ {dquote} $ {pote} $ {dquote} $ {squote} $ 1"また、すべてのサブコミッションを使っていても、jqがbashが送信したものを受け入れるのに時間があります。だから、それはbashではなく、jethとsomethign –
この行を修正することができます "最初に私はあなたの部分をユーザーデータを読むために働かせていますか?" –
おそらく擬似コードでスクリプトが何をしたいか説明できますか? –