ZSH:如何与扩展文件名一起重复参数

时间:2015-04-25 11:09:47

标签: zsh glob

所以我是一个neuroimager,我想打开大量的文件。例如:

fslview T1.nii.gz _coil_8/run1.nii.gz _coil_8/run2.nii.gz _coil_32/run1.nii.gz _coil_32/run2.nii.gz 

所以我可以在zsh中使用glob表达式更容易,如下所示:

fslview T1.nii.gz _coil_*/*.nii.gz (<tab>/<enter>)

但是,我真正想要的是为所有扩展文件添加一个额外的色彩映射范围,所以:

fslview T1.nii.gz _coil_8/run1.nii.gz -b 300,1500 _coil_8/run2.nii.gz  -b 300,1500_coil_32/run1.nii.gz -b 300,1500 _coil_32/run2.nii.gz -b 300,1500

我如何到达那里?

fslview T1.nii.gz _coil_*/*.nii.gz -b 300,1500 (<tab>/<enter>)

不起作用:然后它只是将-b参数添加到最后一个文件名...

1 个答案:

答案 0 :(得分:2)

您可以使用文件及其范围参数替换每个文件,然后使用xargs传回fslview:

ls _coil_*/*.nii.gz | sed 's/$/ -b 300,1500/' | xargs fslview

如果有很多文件,那么如果xargs在错误的位置分解成单独的命令,则可能会遇到问题。您可以先尝试xargs echo fslview,看看它是否会被分解。您还可以使用xargs -n 3 fslview

有意将每个文件分成一个调用