同じファイル名の下に異なるディレクトリにある複数のパラメータを使用するコマンドを実行したいと思います。
mycommand dir-001/myfile dir-002/myfile dir-003/myfile … dir-048/myfile
すべてのファイルを1から48までの番号付きサブディレクトリに配置するか、コマンドパラメータで任意の番号を指定できるいくつかのシェルコマンドを探しています。
ベストアンサー1
3桁の数字(順番に)などの標準ファイル名のワイルドカードを使用できます。
$ mycommand dir-[0-9][0-9][0-9]/myfile
デフォルトのワイルドカードには、1桁の数字のパターン、2桁の数字のパターンなどが必要です。
$ mycommand dir-[0-9]/myfile dir-[0-9][0-9]/myfile
Zsh(他のシェルではない)もサポートするか、mycommand dir-<->/myfile
たとえばmycommand dir-<3-42>/myfile
3〜42回ディレクトリをサポートします。
または中かっこ拡張を好む場合(そしてシェルがそれをサポートしている場合):
$ mycommand dir-{1..3}/myfile
ディレクトリ名の前に0が含まれている場合は、中かっこで囲みますdir-{001..048}/myfile
。
中括弧拡張を使用すると、この操作も実行できます(ksh93およびzshでは可能ですが、bashでは不可能)。
$ mycommand dir-{1..$n}/myfile
これは$n
整数に拡張されます。