2016-11-12 5 views
0

たとえば、1000個のファイルからGREPコマンドを使用してKeyWord/Stringを検索/チェックしている場合、 GREPコマンドで処理されたファイルの割合や数を表示/表示するオプション/方法がありますか?grepコマンドで処理されたファイルの割合または数

検索プロセスを完了するまでにどのくらいの時間がかかるかを知りたいだけです。

答えて

0

awkを試してみてください助けてください。これにより、処理中のファイル番号を示すメッセージが出力され、パターンに一致する行が続きます。私はここでパターンを選択して、文字pにすることができました。あなたはあなたの目的のための任意の有効な正規表現に置き換えることができます。

awk -v PAT="p" 'FNR == 1 { n++; printf "Processing %d of %d files\n", n, ARGC - 1 >> "/dev/stderr"} FILENAME ~ /.gz$/ {print "Skipping gz file: ", FILENAME; nextfile} /PAT/' 

説明

awk -v PAT="p" ' 
    FNR == 1 {        # Every first line of the file 
     n++;         # Counter for file being processed 
     printf "Processing %d of %d files\n", # Print message 
      n,         # file number 
      ARGC - 1       # Number of files on CLI 
      >> "/dev/stderr"     # Redirect to stderr 
    } 
    FILENAME ~ /.gz$/ {      # Skip gunzip files 
     print "Skipping gz file: ", FILENAME; 
     nextfile        # move to next file 
    } 
    /PAT/          # Pattern to print 
' 

UPDATE

処理するときにはgunzip(.gzという)ファイルをスキップするようにコードを更新しました。

+0

出力をメッセージとミックスするのは良い方法ではありません。標準出力にリダイレクトしたい場合があります。 – karakfa

+0

ありがとう@JayRajput ...それは私が必要とするか、または意味しました。しかし、** printf **出力に加えて、私はいくつかの**ジャンク**値を取得しています。実際に私の場合は、検索する必要があるファイルは** .gz **ファイルです。そういうわけで、私はそのような望ましくないジャンク値を得ているのです...?これを避けるための解決策は何ですか? – Krishnan

+0

gunzipファイルをスキップするコードを更新しました –

関連する問題