6つのgzip圧縮テキストファイルがあり、各ファイルの圧縮サイズは約17Gです。特定の問題があるかどうかを確認するには、各ファイル(圧縮解除)の最後の数行を調べる必要があります。明らかな方法は非常に遅いです。
for i in *; do zcat "$i" | tail -n3; done
次のような巧妙なことができると思いました。
for i in *; do tail -n 30 "$i" | gunzip | tail -n 4 ; done
または
for i in *; do tac "$i" | head -100 | gunzip | tac | tail -n3; done
しかし、どちらも次のように文句を言いました。
gzip: stdin: not in gzip format
ヘッダーがないので、そういうことがわかりましたが、gzip
これも失敗しました。
$ aa=$(head -c 300 file.gz)
$ bb=$(tail -c 300 file.gz)
$ printf '%s%s' "$aa" "$bb" | gunzip
gzip: stdin: unexpected end of file
私が本当に探しているのはztail
、ztac
しかし私はそれが存在しないと思います。ファイル全体を解凍せずに圧縮ファイルの最後の数行を解凍して印刷できる巧妙なトリックを考案できる人はいますか?