我想执行一个命令,该命令接受多个参数,这些参数位于相同文件名下的不同目录中,例如
mycommand dir-001/myfile dir-002/myfile dir-003/myfile … dir-048/myfile
我正在寻找一些shell命令,该命令可以将所有文件放在子目录中,其编号从1到48或任何数字作为命令参数。
您可以使用标准的文件名通配符,例如对于所有3位数字(按顺序):
$ mycommand dir-[0-9][0-9][0-9]/myfile
使用基本的Globing时,您需要一种模式来表示一位数字,一种模式来表示两位数字,等等。
$ mycommand dir-[0-9]/myfile dir-[0-9][0-9]/myfile
Zsh(但不包括其他Shell)也支持mycommand dir-<->/myfile
,例如mycommand dir-<3-42>/myfile
,目录号为3到42。
或者,如果您喜欢大括号扩展(并且您的外壳支持它):
$ mycommand dir-{1..3}/myfile
如果您的目录名称包含前导零,则将其放在大括号中,例如dir-{001..048}/myfile
。
通过花括号扩展,您也可以这样做(在ksh93和zsh中,但在bash中不行)
$ mycommand dir-{1..$n}/myfile
其中$n
扩展为某个整数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句