bsub < 複数のファイルの検索と実行

bsub < 複数のファイルの検索と実行

*.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' _ {} +

どちらもファイル名は安全です(つまり、ファイル名のスペースと非印刷/半印刷文字を処理します)。

おすすめ記事