0
たとえば、1000個のファイルからGREPコマンドを使用してKeyWord/Stringを検索/チェックしている場合、 GREPコマンドで処理されたファイルの割合や数を表示/表示するオプション/方法がありますか?grepコマンドで処理されたファイルの割合または数
検索プロセスを完了するまでにどのくらいの時間がかかるかを知りたいだけです。
たとえば、1000個のファイルからGREPコマンドを使用してKeyWord/Stringを検索/チェックしている場合、 GREPコマンドで処理されたファイルの割合や数を表示/表示するオプション/方法がありますか?grepコマンドで処理されたファイルの割合または数
検索プロセスを完了するまでにどのくらいの時間がかかるかを知りたいだけです。
が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という)ファイルをスキップするようにコードを更新しました。
出力をメッセージとミックスするのは良い方法ではありません。標準出力にリダイレクトしたい場合があります。 – karakfa
ありがとう@JayRajput ...それは私が必要とするか、または意味しました。しかし、** printf **出力に加えて、私はいくつかの**ジャンク**値を取得しています。実際に私の場合は、検索する必要があるファイルは** .gz **ファイルです。そういうわけで、私はそのような望ましくないジャンク値を得ているのです...?これを避けるための解決策は何ですか? – Krishnan
gunzipファイルをスキップするコードを更新しました –