基本的なAwkの質問ですが、どこにも答えが見つからないようです。
50000個のtxtファイルのフォルダーがあり、そこからサブセットに対してAWK検索を実行したいと思います。検索を制限したいファイル名を別のドキュメントに保存しました。これにより、検索が大幅に高速化されます。現時点では、次のようになります。
awk -F "searchTerm" '{print NF-1}' data/output/*>> output.txt
どうもありがとう
基本的なAwkの質問ですが、どこにも答えが見つからないようです。
50000個のtxtファイルのフォルダーがあり、そこからサブセットに対してAWK検索を実行したいと思います。検索を制限したいファイル名を別のドキュメントに保存しました。これにより、検索が大幅に高速化されます。現時点では、次のようになります。
awk -F "searchTerm" '{print NF-1}' data/output/*>> output.txt
どうもありがとう
検索するサブセットを含むファイルが呼び出され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
私はこれがあなたのために働くと思います。
awk '/searchTerm/{print $(NF-1)}' data/output/*>> output.txt
filelist.txtというファイルにリストがある場合は、catコマンドからstdoutを使用できます。
awk -F "searchTerm" '{print NF-1}' `cat data/output/filelist.txt` >> output.txt`