コマンドラインからデータURLをダウンロードする方法は?

コマンドラインからデータURLをダウンロードする方法は?

私はブラウザコンソールを介してこれを行うJavaScriptコードのみを見つけました。

たとえば、Google画像検索結果グリッドの最初の画像から画像アドレスをコピーすると、データURLが取得されます。

試みたコマンドとエラー:

$curl 'data:stuff' -o ファイル名 
カール:(3)URLが無効/無効な形式を使用するか、URLがありません。
$curl 'データ:もの'>ファイル名
カール:(3)URLが無効/無効な形式を使用するか、URLがありません。
$wget 'data:stuff' -O ファイル名
データの解析中...失敗:名前またはサービスが不明です。
wget:ホストアドレス 'data'を確認できません。

コマンドラインからデータURLをダウンロードする方法は?

答え1

このdata:スキームはWebページのコンテキストではローカルですが、どちらもリモートデータとしてwget機能します。curlおそらくあなたに本当に必要なのは、base64 -dこの種のデータを復号化する能力です。

最後に、データURIスキームは、シェルが許可するよりも長くても大きくてもよい。以下を参照してください。https://stackoverflow.com/a/41755526シェル履歴にそんなに多くのランダムなデータを保持したいかどうか疑われます。

答え2

Artemの答えに追加します。

パッケージマネージャを使用してxclipをダウンロードし、シェルスクリプトを使用できます(データURLをコピーする必要があります):

#! /usr/bin/bash

data=$(xclip -out -selection clipboard)

ext=${data#*/}
ext=${ext%%;*}
ext=${ext/jpeg/jpg}

if [ $1 ]; then
        filename=$1
else
        filename=file
fi

echo "${data#*,}" | base64 -d > $filename.$ext

引数がない場合はファイル名がファイルとして保存され、それ以外の場合は最初の引数になります。

編集:拡張スクリプト - 素晴らしいコメントをいただいたFreddyに感謝します。

関連情報