-#!/bin/sh
+#!/bin/sh +x
write_mhd_4D()
/DimSize/ s/.*/& $nbph/
s/ElementDataFile = .*/ElementDataFile = LIST/" > "$1/$file_name_4D"
- for ph in $listph
+ for ph in ${listph[@]}
do
ph=`basename $ph`
echo "$ph" >> "$1/$file_name_4D"
done
+ echo $1/$file_name_4D
}
#################################################
exit 1
fi
-nb_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd" -o -iname "*[0-9]*\]*.mhd" | wc -l`
+nb_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd" | wc -l`
if [ $nb_phase_file = 0 ]
then
- echo "Error: no phase found"
+ echo "No phase found in $1"
exit 1
fi
-########## CT #########
-list_pattern=""
+list_prefix=""
list_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*.mhd"`
for phase_file in $list_phase_file
do
- phase_file_name=`basename $phase_file`
- if [[ ! -z `echo "$phase_file_name" | grep ","` ]]
+ if grep -q "NDims = 4" $phase_file 2> /dev/null
then
- prefix=`echo $phase_file_name | sed "s/,_.*/,_/"`
- else
+ #echo $phase_file is 4D
+ continue;
+ fi;
+
+ phase_file_name=`basename $phase_file .mhd`
+# if [[ ! -z `echo "$phase_file_name" | grep "__[0-9]"` ]]
+# then
+# prefix=`echo $phase_file_name | sed "s/__[0-9].*/__/"`
+# else
+# if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]]
+# then
+# if [[ ! -z `echo "$phase_file_name" | grep "[0-9][0-9]-.*\]"` ]]
+# then
+# prefix=`echo $phase_file_name | sed "s/[0-9][0-9]-.*//"`
+# else
+# prefix=`echo $phase_file_name | sed "s/[0-9]-.*//"`
+# fi
+# else
+# prefix="NONE"
+# fi
+# fi
+
+ # preffix: grep sequence of characters followed by sequence of numbers and remove sequence of numbers
+ # prefix=`echo $phase_file_name | grep -o "\(^[[:alpha:][:punct:]]*\)\([[:digit:]\.\_\-]\+\)" | sed 's/\(^[[:alpha:][:punct:]]*\)\([[:digit:]\.\_\-]\+\)/\1/'`
+ prefix=`echo $phase_file_name | grep -o "\(^[[:alpha:][:punct:]]*\)\([[:digit:]]\+\)\([\.\_\-]*\)"`
+ prefix=`echo $prefix | sed 's/^\-\+//' | sed 's/\(^[[:alpha:][:punct:]]*\)\([[:digit:]]\+\)\([\.\_\-]*\)/\1/'`
+ if [[ -z $prefix ]]
+ then
prefix="NONE"
fi
- if [[ -z `echo "$list_pattern" | grep "$prefix"` ]]
- then
- list_pattern="$list_pattern $prefix"
- fi
-done
-
-for pattern in $list_pattern
-do
-
- if [ "$pattern" = "NONE" ]
+ # register new preffix if not yet done
+ if [[ -z `echo "$list_prefix" | grep -w -- "$prefix"` ]]
then
- pattern=""
+ list_prefix="$list_prefix $prefix"
fi
-
- nbph=`find $1 -maxdepth 1 -iname "${pattern}*[0-9]*.mhd" | wc -l`
- orig=`find $1 -maxdepth 1 -iname "${pattern}*[0-9]*.mhd" | sort | head -n 1`
- listph=`find $1 -maxdepth 1 -iname "${pattern}*[0-9]*.raw" | sort`
-
- file_name_4D="${pattern}_4D.mhd"
- echo $file_name_4D
-
- write_mhd_4D $1
-
done
-############ PET ###########
-
-list_pattern=""
-list_phase_file=`find $1 -maxdepth 1 -iname "*[0-9]*\]*.mhd"`
-for phase_file in $list_phase_file
+for prefix in $list_prefix
do
- phase_file_name=`basename $phase_file`
- if [[ ! -z `echo "$phase_file_name" | grep "[0-9]-.*\]"` ]]
- then
- prefix=`echo $phase_file_name | sed "s/.*[0-9]-/-/;s/\]_.*//"`
- else
- prefix="NONE"
- fi
- if [[ -z `echo "$list_pattern" | grep -- "$prefix"` ]]
+ if [ "$prefix" = "NONE" ]
then
- list_pattern="$list_pattern $prefix"
+ prefix=""
fi
-done
-
-for pattern in $list_pattern
-do
-
- if [ "$pattern" = "NONE" ]
- then
- pattern=""
- fi
+ list_suffix=""
+ list_phase_file_prefix=`find $1 -maxdepth 1 -iname "${prefix}[0-9]*.mhd"`
+ for phase_file_prefix in $list_phase_file_prefix
+ do
+ if grep -q "NDims = 4" $phase_file_prefix 2> /dev/null
+ then
+ #echo $phase_file_prefix is 4D
+ continue;
+ fi;
+ phase_file_prefix_name=`basename $phase_file_prefix .mhd`
+# if [[ ! -z `echo "$phase_file_prefix_name" | grep "__[0-9]"` ]]
+# then
+# suffix="NONE"
+# else
+# if [[ ! -z `echo "$phase_file_prefix_name" | grep "[0-9]-.*\]"` ]]
+# then
+# suffix=`echo $phase_file_prefix_name | sed "s/.*[0-9]-//;s/_\.mhd//;s/\.mhd//"`
+# else
+# suffix="NONE"
+# fi
+# fi
+#
+
+ # suffix: grep sequence of numbers followed by sequence of characters and remove sequence of numbers
+ # suffix=`echo $phase_file_prefix_name | grep -o "\([[:digit:]\.\_\-]\+\)\([[:alpha:][:punct:]]*$\)" | sed 's/\([[:digit:]\.\_\-]\+\)\([[:alpha:][:punct:]]*$\)/\2/'`
+ suffix=`echo $phase_file_prefix_name | grep -o "\([\.\_\-]*\)\([[:digit:]]\+\)\([[:alpha:][:punct:]]*$\)"`
+ if ! echo $suffix | grep -qo "^\-\+"; then
+ suffix=`echo $suffix | sed 's/\([\.\_\-]*\)\([[:digit:]]\+\)\([[:alpha:][:punct:]]*$\)/\3/'`
+ fi
+ suffix=`echo $suffix | sed 's/[\.\_\-]\+$//'`
+ if [[ -z $suffix ]]
+ then
+ suffix="NONE"
+ fi
+
+ # register new suffix if not yet done
+ if [[ -z `echo "$list_suffix" | grep -w -- "$suffix"` ]]
+ then
+ list_suffix="$list_suffix $suffix"
+ fi
+ done
- nbph=`find $1 -maxdepth 1 -iname "*[0-9]${pattern}\]*.mhd" | wc -l`
- orig=`find $1 -maxdepth 1 -iname "*[0-9]${pattern}\]*.mhd" | sort | head -n 1`
- listph=`find $1 -maxdepth 1 -iname "*[0-9]${pattern}\]*.raw" | sort`
- file_name_4D=`basename "$orig" | sed "s/[0-9]${pattern}\]/${pattern}\]/;s/_.mhd/_4D.mhd/"`
+ for suffix in $list_suffix
+ do
+ if [ "$suffix" = "NONE" ]
+ then
+ suffix=""
+ fi
+ orig=`find $1 -maxdepth 1 -iname "${prefix}[0-9]*${suffix}*.mhd" | grep "${prefix}[[:digit:][:punct:]]\+${suffix}[\.\_\-]*.mhd" | sort | head -n 1`
+ listph=( `find $1 -maxdepth 1 -iname "${prefix}[0-9]*${suffix}*.*raw" | grep "${prefix}[[:digit:][:punct:]]\+${suffix}[\.\_\-]*.z*raw" | sort` )
+ nbph=${#listph[@]}
+
+ # only create 4D file if potential number of phases is > 1
+ if [ $nbph -gt 1 ]; then
+ file_name_4D="${prefix}4D${suffix}.mhd"
+ write_mhd_4D $1
+ fi
- write_mhd_4D $1
+ done
done
+