Bash リダイレクトエンコーディング

Bash リダイレクトエンコーディング

コマンドを使用しbase64 somefile.extてファイルをテキストに変換しようとしています。唯一の問題は、ファイル サイズが 35% 増加し、大きなファイルでは許容できないことです。ファイルをエンコードしてサイズを小さくできるのではないかと考えています。現在、出力ファイルのエンコードは ですus-ascii

ファイルサイズを小さくできるエンコード方法はありますか?

答え1

エンコードする前に圧縮するだけです。

  $ wc -c < /bin/ls
  114024
  $ < /bin/ls base64 | wc -c
  154033
  $ xz < /bin/ls | base64 | wc -c
  59878

(gzip、bzip2 など、任意の圧縮形式を使用できますが、受信側で解凍することを忘れないでください)

印刷可能な ASCII 文字はそれほど多くありません。base64 は 64 個の ASCII 文字を使用するため、6 ビットの入力で 8 ビットの出力が生成されます。使用できる文字はこれ以上多くありません。

関連情報