*.lsf
現在のコンテンツを見つけてファイルの検索をすべて/subdirectories
実行する予定です。bsub<*.lsf
私は試した:
find ./ -type f -name "*.lsf" -exec bsub < \;
この部分はfind ./ -type f -name "*.lsf"
うまくいきます。しかし、実装に問題がありました。
この質問に答えるのに役立つ人はいますか?
ベストアンサー1
最初の試みでほぼ成功しました。あなたがすべきことは、シェルを呼び出して<
リダイレクト演算子を解決することです。
find -name '*.lsf' -exec bash -c 'bsub <"$1"' _ {} \;
ただし、一致するファイルごとにシェルを起動するので、これは非常に効率的ではありません。できるだけ少数のシェル呼び出しを実行し、ループを使用して複数のファイルを一度に処理します。
find -name '*.lsf' -exec bash -c 'for i in "$@"; do bsub <"$i"; done' _ {} +
どちらもファイル名は安全です(つまり、ファイル名のスペースと非印刷/半印刷文字を処理します)。