Setting Bash variable to last number in output -
i have bash running command program (afni). command outputs 2 numbers, this:
70.0 13.670712
i need make bash variable whatever last # (in case 13.670712). i've figured out how make print last number, i'm having trouble setting variable. best way this?
here code prints 13.670712: test="$(3dbrickstat -mask ../../template/rois.nii -mrange 41 41 -percentile 70 1 70 'stats.s1_ants+tlrc[25]')"; echo "${test}" | awk '{print $2}'
just pipe(|
) command output awk
. here in example, awk
reads stdout
of previous command , prints 2nd
column de-limited default single white-space character.
test="$(3dbrickstat -mask ../../template/rois.nii -mrange 41 41 -percentile 70 1 70 'stats.s1_ants+tlrc[25]' | awk '{print $2}')" printf "%s\n" "$test" 13.670712
(or) using echo
echo "$test" 13.670712
this simplest of ways this, if looking other ways in bash
-ism, use read
command using process-substitution
read _ va2 < <(3dbrickstat -mask ../../template/rois.nii -mrange 41 41 -percentile 70 1 70 'stats.s1_ants+tlrc[25]') printf "%s\n" "$val2" 13.670712
another more portable version using set
, work irrespective of shell available.
set -- $(3dbrickstat -mask ../../template/rois.nii -mrange 41 41 -percentile 70 1 70 'stats.s1_ants+tlrc[25]'); printf "%s\n" "$2" 13.670712
Comments
Post a Comment