Unixの単純なforループは次のとおりです。
for FILE in $BASE_WORK_DIR/*.pdf
do
echo $FILE
done
.pdf
これにより、BASE_WORK_DIRディレクトリ内のすべてのファイルがエコーされます。
BASE_WORK_DIR
PDFファイルも含むサブディレクトリがある場合はどうなりますか?
この場合、どのPDFファイルBASE_WORK_DIR
とそのサブディレクトリをインポートするようにforループをどのように設計できますかBASE_WORK_DIR
?
ベストアンサー1
標準的で標準的で信頼できる構文は次のとおりです。
find . -type f -name '*.pdf' -exec sh -c '
for f do
something with "$f"
done' sh {} +
sh
(ファイルリストが大きい場合は、複数の呼び出しを実行できます。)
の場合はzsh
次のようになります。
for f (./**/*(.NDoN)) {
something with "$f"
}
(隠しファイルを含む.
場合は、-type f
リストを並べ替えるのではなく、一致するファイルがなくても文句を言わないでください。)しかし、アクセスできないディレクトリに関するエラーメッセージは表示されません。D
oN
N