LZMAに保存されている追跡データを取得するには?

LZMAに保存されている追跡データを取得するには?

〜のようにgzipアーカイブから追跡データを取得するにはどうすればよいですか?GZIPアーカイブの場合は、LZMAアーカイブのトレースデータを取得する方法が必要です。

答え1

GZIPスレッドに公開されているソリューションと同様に、データを取得するためにPerlスクリプトを作成しました。このモジュールは、デフォルトでインストールされていないPerlモジュールを使用します。私の場合は、他のモジュールとLZMAのエンコード/デコードソースが必要だったので、まずUbuntu 16.04サーバーで次のことを行う必要がありました。

sudo apt install -y liblzma-dev
sudo cpan Compress::Raw::Lzma
sudo cpan IO::Uncompress::UnLzma

Perlスクリプト:

#!/usr/bin/perl
use strict;
use warnings; 

use IO::Uncompress::UnLzma qw(:all);
use IO::File;

my $in = new IO::File "<-" or die "Input error!\n";
unlzma $in => "/dev/null",
  TrailingData => my $trailing;
undef $in;

print $trailing;

使用法:

./lzmaTrailingDataGet.pl </path/to/input.lzma >/path/to/output.bin

関連情報