forループでファイルグループを繰り返します。

forループでファイルグループを繰り返します。

次のファイルセットがあります。

A1.xlsx
A2.xlsx
B1.xlsx
C1.xlsx
C2.xlsx

プレフィックス(A、B、C)のみが認識され、残りの名前はファイル数と同様に事前には不明です。いくつかのコマンドを呼び出して、次のようにファイルグループを渡す必要があります。

mycommand A*.xlsx
mv A*.xlsx tmp/
mycommand B*.xlsx
mv B*.xlsx tmp/
mycommand C*.xlsx
mv C*.xlsx tmp/

さまざまなループ構文を試しましたが、for fileGroup in A* B* C*ファイル名を1つずつ渡すことも、mycommandすべてのファイルに対して一度だけ呼び出すこともできます。mycommandこれを行う構文はbashにありますか?

ベストアンサー1

プレフィックスを知っていてハードコーディングできるとします。

for p in A B C D; do
    mycommand "$p"*.xlsx
    mv "$p"*.xlsx tmp/
    ...
done

おすすめ記事