カールの出力をsshコマンドにパイプまたはリダイレクトします。

カールの出力をsshコマンドにパイプまたはリダイレクトします。

私はこれは不可能だと確信していますが、過去には間違っていました。

基本的に私が望むのは、カールコマンドのJSON出力を取得し、jqにパイプしてきれいに保つことです。良い結果。ただし、OSXにはこの機能がないため、Brewや他の方法でインストールする必要があります。私にとっては問題ではありません。しかし、企業環境では、サードパーティ製のアプリケーションをインストールすることが眉をひきます。しかし、多くのLinuxサーバーにはjqがインストールされています。

jqを実行するためにローカル出力をsshにパイプすることはできますか?

curl https://whatever.site/json | ssh linuxHost "jq '.'" > output.json

多数のLinuxサーバーには外部アクセス権がないため、そこからカールコマンドを実行しても機能しないことに注意してください。はい、scpを作成できますが、より多くのステップがあります。

ベストアンサー1

やりたいことがすべてだったら美しい印刷JSONドキュメント(詳細フィルタリング、集計、またはその他の項目を除く)を使用すると、macOS基本システムユーティリティのより簡単なユーティリティjson_pp()を使用できます。/usr/bin/json_ppこのjson_ppユーティリティはPerlモジュール用のコマンドラインラッパーですJSON::PP

$ echo '{ "hello": "world!" }' | json_pp
{
   "hello" : "world!"
}

man json_ppカスタム出力形式(-json_optオプション)の説明については、参考資料を参照してください。

例:

$ echo '{ "hello": "world!" }' | json_pp -json_opt pretty,indent_length=2,space_before=0
{
  "hello": "world!"
}

おすすめ記事