実行時にコマンド結果を繰り返す方法

実行時にコマンド結果を繰り返す方法

findファイルを検索し、さらに処理するために結果を繰り返すスクリプトがあります。

for file in $(find ~ -type f -size +1G); do
     filename=$(basename $file)
     echo $file
done

findコマンドを直接実行すると、一致が直接出力されます。ただし、このスクリプトでは、まずコマンドが完全に完了するのを待ってから、loop結果を繰り返します。find

コマンドがfind一致するものを見つけると、一致を介してループを実行できますか?

outputを使用することは可能ですpipeが、ループ内の単純なコンテンツラインよりも複雑な作業をしたいと思います。

ベストアンサー1

代わりに、このアプローチを使用する方法を学びます。

find ~ -type f -size +1G -exec bash -c 'do-stuff-with "$1"' bash_find {} \;

findコンストラクタで-exec ... {} \;find コマンドを使用して見つけたbash -c '...'各ファイルに対して実行するインラインスクリプトを開きます。

bash_findはインラインスクリプトの名前で、スクリプトを表します。エラーが発生すると、スクリプトは停止し、エラーが印刷された視覚的な出力とエラーの簡単な説明を提供する$0ために使用されます。bash_find

おすすめ記事