ASCIIで作成された整数を含むファイルを整数のバイナリファイルに変換します。

ASCIIで作成された整数を含むファイルを整数のバイナリファイルに変換します。

次のように、改行で区切られたASCIIで書かれた長い整数のリストを含むファイルがあります。

-175
2
-19345
345592
-45
2355

など...

このファイルを同じ整数を含む「バイナリ」ファイルに変換して、実際の4バイト整数を作成したいと思います。

これを達成するためにどのコマンドラインツールを使用できますか?

ベストアンサー1

perl -pe '$_=pack"l",$_' < infile > outfile

デフォルトのバイト順序を使用します。ビッグエンディアンの場合はl>代わりに使用し、リトルエンディアンの場合は代わりに使用してください。ll<

詳細についてはを参照してくださいperldoc -f pack

l小文字であることに注意してくださいL長い整数1)、数字ではありません。

$ printf '%s\n' 1234 -2 | perl -pe '$_=pack"l",$_'| od -vtd4
0000000        1234          -2
0000010
$ printf '%s\n' 1234 -2 | perl -pe '$_=pack"l>",$_'| od -vtx1
0000000 00 00 04 d2 ff ff ff fe
0000010

おすすめ記事