所以我是一个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参数添加到最后一个文件名...
答案 0 :(得分:2)
您可以使用文件及其范围参数替换每个文件,然后使用xargs传回fslview:
ls _coil_*/*.nii.gz | sed 's/$/ -b 300,1500/' | xargs fslview
如果有很多文件,那么如果xargs在错误的位置分解成单独的命令,则可能会遇到问题。您可以先尝试xargs echo fslview
,看看它是否会被分解。您还可以使用xargs -n 3 fslview