我试图从LabelID 1(117.96)中提取Max值。
LabelID Mean StdD Max Min Count Vol(mm^3) Extent(Vox)
0 20.99750 56.25956 1606.19238 -15.53062 2073413 3591156.654 144 144 100
1 98.31916 7.77291 117.95876 81.89870 110 190.520 11 15 6
3 131.89938 10.77435 154.69934 111.26049 77 133.364 11 12 4
我尝试使用c3d $image $ROI -lstat | awk ‘{print $22}’
,但它返回一个空行。 Cut产生类似的结果。
答案 0 :(得分:5)
#!/bin/bash
target_label=1
target_column=3 # first column is 0, so fourth is 3
while read -r -a columns; do # read a line into an array
if [[ ${columns[0]} = $target_label ]]; then # check label id
echo "${columns[target_column]}" # print the column we want
break # and exit the loop
fi
done <infile # redirect input for that full block
当然,<infile
可以替换为< <(your command goes here)
,以从命令的输出而不是文件中读取流。
如果您只想接受标签,而不是任何其他类型的空白,请将其设为while IFS=$'\t' read -r -a columns
。如果您不想允许合并多个连续的文字标签,请参阅read in bash on tab-delimited file without empty fields collapsing。
答案 1 :(得分:5)
请说:
$ awk '$1==1{print $4}' file
117.95876
即,当第一列为1
时,打印第4列。