在我的路径中,总共有120个案例,每个案例有两个文件,路径如下:
00001_FA.nii.gz
00001_FA_grot.nii.gz
00002_FA.nii.gz
00002_FA_grot.nii.gz
.. ..
00120_FA.nii.gz
00120_FA_grot.nii.gz
我想fslstats 00001_FA_nii.gz -k 00001_FA_grot.nii.gz -m
重复该过程直到 00120 案例。
命令该怎么写?谢谢
答案1
您需要使用循环函数(for
例如,非常有用)。此外,您需要将 1、2、3 .. 119、120 转换为 5 位数字格式。您可以使用 来做到这一点printf
。
这是你的脚本:
for i in {1..120} ; do
j=$(printf %05d $i)
fslstats ${j}_FA_nii.gz -k ${j}_FA_grot.nii.gz -m
done
正如@steeldriver 在评论中指出的那样,bash
现在可以理解括号中的前导 0,因此您可以替换
for i in {1..120} ; do
j=$(printf %05d $i)
和
for j in {00001..00120} ; do