GPG暗号化ファイルの埋め込みファイル名を取得する方法

GPG暗号化ファイルの埋め込みファイル名を取得する方法

以下を使用して、暗号化されたファイルの埋め込みファイル名を表示できますgpg --list-packets 001.gpg

[...]

:literal data packet:
    mode b (62), created 1630584912, name="elephant.jpg",
    raw data: 87417 bytes

[...]

埋め込みファイル名のみを取得する方法はありますか?表示専用コマンドはありますかelephant.jpg

ベストアンサー1

name="",行間および行以降のデータを取得するには、:literal data packet:次のようにしますsed

gpg --list-packets file.gpg |
sed -e '/^:literal data packet:$/!d' \
    -e 'N' \
    -e 's/[^=]*name="//' \
    -e 's/",$//' \
    -e 'q'

式は、最初に行が見つかるまでsed読み取ったすべての行を削除します。次にすぐに次の行を追加し、最初の部分文字列を含む現在のバッファのすべての内容を削除します。その後、行の終わりから削除して終了します(出力バッファに残ります)。gpg:literal data packet:Nname="",

これにより、データに含まれる同様のデータまたはfile",ファイル名を扱うことができます。name="hello"gpg

特殊文字は、ファイルに含まれる前に16進エスケープシーケンスとしてエンコードされますgpg。たとえば、各改行文字は\x0a

おすすめ記事