/var/log/ にあるログ ファイルを grep するためのスクリプトを作成しようとしています。非圧縮ログまたは圧縮ログ (ログ ローテーションの結果として) のいずれかを grep することはできますが、1 つのコマンドで両方を実行することはできませんでした (そうしようとすると、「バイナリ ファイル (標準入力) の一致」が表示されます)。そのようなことをすることさえ可能ですか?ありがとう!
質問する
4177 次
3 に答える
10
zgrep
圧縮ファイルと非圧縮ファイルの両方を処理します。1 つの欠点は、ディレクトリを再帰的に処理できないことです。しかし、あなたのインスタンスでは、それで十分であり、次のように syslog などをフィルタリングできます。
$ zgrep PATTERN /var/log/syslog*
于 2015-05-19T09:47:16.560 に答える
6
シェル関数を使用してこれを試してください:
greplog () {
cd /var/log
{
cat $1 $1.*[0-9]
zcat $1.*.gz
} | grep "$2"
}
使用法 :
$ greplog syslog pattern
于 2013-02-18T18:17:38.070 に答える