4 echo Usage: dcm_sort_by_field.sh \"field name\"
8 dir_name=`basename "$path_dir"`
9 [ -d "../${dir_name}_sorted" ] && rm -r "../${dir_name}_sorted"
10 mkdir "../${dir_name}_sorted"
11 find . -type f -iname "*.dcm" > ../${dir_name}_sorted/dicom_files
13 total=$(wc -l ../${dir_name}_sorted/dicom_files)
14 cat ../${dir_name}_sorted/dicom_files | while :
18 while [ $jobrunning -lt $conc_jobs ]
20 read i || { wait; break 2; }
22 name="$(clitkDicomInfo "$i" | grep "$1" | head -n 1 | sed "s/.*\[//;s/.$//;s/ /_/g")"
23 [ -z "$name" ] && echo "Warning: key not found in file $i" 1>&2 && mkdir -p "../${dir_name}_unsorted" && basename=$(basename "$i") && cp -l "$i" "../${dir_name}_unsorted/$basename" && exit 1 #copy to unsorted directory if dicom key not found
24 #[ -z "$name" ] && echo "Warning: key not found in file $i" 1>&2 && exit 1 #don't do anything if dicom key not found
25 name=`echo "$name" | sed 's/\//_/g'`
26 name=`echo "$name" | sed 's/\\\/_/g'`
27 name=`echo "$name" | sed 's/\*/_/g'`
28 [ -d "../${dir_name}_sorted/$name" ] || mkdir "../${dir_name}_sorted/$name" 2>>/dev/null
29 basename=$(basename "$i")
30 cp -l "$i" "../${dir_name}_sorted/$name/$basename"
32 jobrunning=$(( $jobrunning + 1 ))
34 finished=$(( $finished + $conc_jobs ))
35 echo -e -n "( $finished / $total )\r"
38 rm ../${dir_name}_sorted/dicom_files