「jq」出力の各行の先頭に「wget」を追加するには?

「jq」出力の各行の先頭に「wget」を追加するには?

次のコマンド:

jq ".[] | .file.url_private_download" *json

次の形式の複数行を生成します。

"https://files.slack.com/files-pri/T27SFGS2W-F78LH1DN2/download/img_1964.jpg?t=xoxe-243624297126-248125875671-248125975751-cee1f8d9a1"

各行の前にwgetコマンドを追加する最も簡単な方法は何ですか?

非常にありがとう

ベストアンサー1

以下はいくつか修正したコマンドです。

jq -r '.[] | @sh "wget \(.file.url_private_download)"' *json

多様性:

  • -rJSONエンコード文字列の代わりに、デコードされた文字列を出力に取得するために使用されます。

  • 文書の値を文字列に挿入するwget ために使用される構造体で、目的の値が続く文字列を生成します。\(...)

  • @shシェル生成文字列を正しく引用するために使用されます。これにより、各文字列の補間値がシェルで使用するために安全に引用されます。

上記のコマンドを使用すると、表示されたURLを含むエントリが次の行を出力として生成すると予想されます。

wget 'https://files.slack.com/files-pri/T27SFGS2W-F78LH1DN2/download/img_1964.jpg?t=xoxe-243624297126-248125875671-248125975751-cee1f8d9a1'

おすすめ記事