[jq] JSON 内の文字列を Base64 エンコード・デコードする
作成日: 2026年10月31日
jq の @base64 と @base64d を使用すると、JSON 内の文字列を Base64 エンコード・デコードできます。更新演算子の |= と組み合わせると、特定のプロパティの値を変換できます。
Base64 エンコードする
下記の例では、message プロパティの文字列を Base64 エンコードしています。
printf '%s\n' '{"id":1,"message":"Hello, jq!"}' | jq '.message |= @base64'
実行結果は下記のとおりです。
{
"id": 1,
"message": "SGVsbG8sIGpxIQ=="
}
.message |= @base64 は、message の値に @base64 を適用し、その結果で値を更新します。この例では、id の値はそのまま保持されます。
Base64 デコードする
@base64d を使用すると、Base64 エンコードされた文字列をデコードできます。
printf '%s\n' '{"id":1,"message":"SGVsbG8sIGpxIQ=="}' | jq '.message |= @base64d'
実行結果は下記のとおりです。
{
"id": 1,
"message": "Hello, jq!"
}
message の値が元の文字列に戻ります。この例では、UTF-8 テキストを Base64 エンコードした文字列を扱っています。