GNU/Linux >> Linux の 問題 >  >> Ubuntu

このZcatループで特定のキーワードのみを見つける方法は?

これは私が入力したものであり、""のユーザーのログのみを取得することが期待されていました 。しかし、私はサーバーにログ全体を持っています:

for i in `ls *.log.gz`; do zcat $i |  grep "U2779897722719715411" >> sara.log;  done ; *

このキーワードのログのみを検索するには、このループで何を変更する必要がありますか?

ありがとうございます。

承認された回答:

zgrep コマンドは、圧縮ファイルのgrepingに非常に役立ち、zcatをパイプする必要がなくなります。 grepへ 。また、グロビング(シェルパターンマッチング)によってファイルのリストを作成するためにforループを使用する必要はありません。

zgrep U2779897722719715411 *.log.gz >> sara.log

このコマンドは、ファイル名とU2779897722719715411を含む行を:で区切って出力します。 キャラクター。

ファイル名のプレフィックスが不要な場合は、-hを使用できます zgrepのオプション :

zgrep -h U2779897722719715411 *.log.gz >> sara.log

これはループでも実現できますが、lsの使用は避けてください。 、ループの完了後にファイルへのリダイレクトを実行します:

for i in *.log.gz ; do zgrep U2779897722719715411 "$i" ; done >> sara.log

または、そのユーザー文字列U2779897722719715411を含むファイルのファイル名のみが必要な場合は、-lを使用できます。 zgrepのオプション 上記のコマンドのいずれかで:

zgrep -l U2779897722719715411 *.log.gz >> sara.log

または

for i in *.log.gz ; do zgrep -l U2779897722719715411 "$i" ; done >> sara.log

Ubuntu
  1. パターンに一致する特定のファイルを検索する方法は?

  2. 削除するNumlockキーを再マップする方法は?

  3. CentOS / RHEL 7 :特定のインターフェイスでのみ IPv6 を無効にする方法

  1. root 以外の特定のユーザーのみに crontab の使用を許可する方法

  2. Linux ですべてまたは特定のファイルを gzip する方法

  3. Linux でこの名前のファイルを削除する方法:-]???????q

  1. SEDコマンドを使用してファイル内の文字列を検索して置換する-Ubuntuでこのタスクを実行するにはどうすればよいですか?

  2. Linux で GREP を使用して特定のテキストを検索する方法

  3. Ubuntu で自分の IP アドレスを見つける方法