5

基本的なAwkの質問ですが、どこにも答えが見つからないようです。

50000個のtxtファイルのフォルダーがあり、そこからサブセットに対してAWK検索を実行したいと思います。検索を制限したいファイル名を別のドキュメントに保存しました。これにより、検索が大幅に高速化されます。現時点では、次のようになります。

awk -F "searchTerm" '{print NF-1}' data/output/*>> output.txt

どうもありがとう

4

3 に答える 3

1

検索するサブセットを含むファイルが呼び出されsubset.txt、そのコンテンツが次の形式であるとします(各ファイルは別々の行にあります)。

file1.txt
file2.txt
file3.txt
...
fileN.txt

次に、これでうまくいきます。

awk -F "searchTerm" '{print NF-1}' $(<subset.txt) >> output.txt

説明:

  • $(<subset.txt)ファイルのサブセットリストをawk入力として提供します。(以下のジョナサン・レフラーのコメントを参照してください)

-F "searchTerm"また、実際にはフィールドセパレーター(各行でawkが使用するリミッター)をに設定していることも指摘しておく必要がありsearchTermます。「searchTerm」を含む各行にフィールド数-1を出力する場合は、次のようにします。

awk '/searchTerm/ {print NF-1}' $(cat subset.txt) >> output.txt
于 2012-11-23T21:03:53.793 に答える
0

私はこれがあなたのために働くと思います。

awk '/searchTerm/{print $(NF-1)}' data/output/*>> output.txt
于 2012-11-23T21:05:41.687 に答える
0

filelist.txtというファイルにリストがある場合は、catコマンドからstdoutを使用できます。

 awk -F "searchTerm" '{print NF-1}' `cat data/output/filelist.txt` >> output.txt`
于 2015-11-10T23:37:42.720 に答える