120,000から500,000を超えるファイルを繰り返す必要があります。find
とてもよく処理されました。
find $PWD -type f -path "fragments/*.pdbqt"
何らかの理由で同じファイルセットを同じ順序で再リストしたいと思います。リストが英数字でソートされているか、fstat
電話番号などでソートされているかは関係ありません。続行する前に出力全体を知る必要があるため、スクリプトの実行が遅くなるため、使用はsort
オプションではありません。find
これを行う方法を知っていますか?
直す。 私の問題を正しく説明できませんでした。私のスクリプトがそのように大量のファイルを処理すると、マイナーな中断が発生し、UPSがダウンする可能性があります。私のスクリプトは中断された部分から続行する必要があります。残りのファイルはどのように処理しますか?
ベストアンサー1
検索出力をファイルに保存し、スクリプトがそのファイルを処理するファイルのリストとして使用するようにします。スクリプトがファイルを処理したら、ファイル名を別のファイルに書き込むようにします。スクリプトが中断された場合、grep
スクリプトの再起動時に処理されたファイルを除外するのは簡単です。例:
touch files_already_processed
while IFS= read -r file
do
# skip file if already processed
grep -q -e "$file" files_already_processed && continue
# process the file
# processing code goes here
echo "$file" >> files_already_processed
done <files_to_process