ログファイルを処理すると、一部はgzipファイルに圧縮されますが、logrotate
一部はそうではありません。したがって、次のことを試してみると:
$ zcat *
次のコマンドラインが作成され、zcat xyz.log xyz.log.1 xyz.log.2.gz xyz.log.3.gz
その後に次のように表示されます。
gzip: xyz.log: not in gzip format
file
これがどのように機能するかと同様に、マジックバイトを取得し、結果を使用またはzcat
依存して出力をパイプするためのツールがありますか?cat
grep
注:スクリプトを書くことができることを知っていますが、そのためのツールがすでにあるかどうかを尋ねたいと思います。
ベストアンサー1
-f
または、以下を試してください--force
。
zcat -f -- *
zcat
単に実行される単純なスクリプトだからです。
exec gzip -cd "$@"
長いオプションを次のように変換できます。
exec gzip --stdout --decompress "$@"
man gzip
そして(強調)によると:
-f--強制 ファイルに複数のリンクがある場合でも、強制圧縮または解凍 そのファイルがすでに存在するか圧縮されたデータ 端末から読み込むか、端末に書き込みます。入力データが特定の形式ではない場合 --stdout オプションも指定すると、gzip として認識されコピーされます。 標準出力を変更せずにデータを入力します。zcatが猫のように振る舞う。
返品:
これにより、出力を
grep
パイプすることができます。
あなたはそれを使用することができますzgrep
:
zgrep -- PATTERN *
しかし、以下のStéphaneのコメントを参照してください。