検索コマンド:リストの名前

検索コマンド:リストの名前

名前のリストを含むファイルがあります。

john
paul
ringo
george
...

その後、さまざまな名前の複数のファイルがあります。

maria.iso
jose.iso
pablo.iso
john.iso
jack.iso
jane.iso
...

findファイルリストの1つと同じ名前のファイルのみを出力するか、一致するものがない場合はファイルを出力しないコマンドを実行したいと思います。私の例では:

john

このような:

find . -type f -name "*.iso" (in array)

しかし、これが可能かどうか、それからどこから始めるべきかわかりません。

これまで私の唯一のアイデアはforループを書くことでしたが、これは醜くて非効率的に見えます。

ありがとう

ベストアンサー1

readarray名前を配列として読み取るために使用されますnames。次に、配列の各要素を繰り返してコマンドを実行しますfind

readarray names < names.txt

for n in ${names[@]};do
    find . -type f -name "${n}.iso"
done

おすすめ記事