У меня есть массив из двух файлов из команды find
:
[ogino@chead SIEMENS]$ DCM_FILES=($(find . -type f))
[ogino@chead SIEMENS]$ echo ${DCM_FILES[@]}
./107939/107939/DICOM/0020_20071002_104554.150005 ./100013/100013/DICOM/0002_20130723_100423.117500
Затем я построил цикл for
, чтобы выгрузить информацию в файлы (через dcmdump
изdcmtk Toolbox):
[ogino@chead SIEMENS]$ for dcm in "${DCM_FILES[@]}"
do
sd=$(dcmdump ${dcm} | grep "(0008,1030)");
done
Однако, похоже, что он читает только один файл DICOM, как показано в моем выводе:
[ogino@chead SIEMENS]$ echo ${sd[0]}
(0008,1030) LO [RESEARCH^THOMPSON_SCHILL] # 24, 1 Unknown Tag & Data
[ogino@chead SIEMENS]$ echo ${sd[1]}
# I get a blank line for the second instance of my echo testing
[ogino@chead SIEMENS]$ echo ${sd[@]}
(0008,1030) LO [RESEARCH^THOMPSON_SCHILL] # 24, 1 Unknown Tag & Data
Я попытался инициировать пустой массив для sd
до цикла, который не работал (sd=( )
), и, что удивительно, индексирование с помощью dcm
также, похоже, не подхватило второй файл ${sd[1]}
...
[ogino@chead SIEMENS]$ echo ${dcm[0]}
./100013/100013/DICOM/0002_20130723_100423.117500
[ogino@chead SIEMENS]$ echo ${dcm[1]}
[ogino@chead SIEMENS]$ echo ${dcm[@]}
./100013/100013/DICOM/0002_20130723_100423.117500
Удаление назначения переменной для переменной sd
, похоже, устраняет ошибку, за исключением того, что мне нужно сохранить этот конкретный вывод где-то в массиве, поэтому я вначале установил для команды dcmdump
значение sd
.
[ogino@chead SIEMENS]$ for dcm in "${DCM_FILES[@]}"; do dcmdump ${dcm} | grep "(0008,1030)"; done
W: no data dictionary loaded, check environment variable: DCMDICTPATH
(0008,1030) LO [MRI BRAIN/MRHD] # 14, 1 Unknown Tag & Data
W: no data dictionary loaded, check environment variable: DCMDICTPATH
(0008,1030) LO [RESEARCH^THOMPSON_SCHILL] # 24, 1 Unknown Tag & Data
Мне кажется, что поиск в Google намекает на то, что может быть проблема с grep
, но сейчас мне это не так ясно.
Есть ли какая-то модификация, которую мне нужно внести в мой цикл, чтобы я мог сохранить оба экземпляра в массиве?Любая помощь, чтобы указать мне в правильном направлении, чтобы произвести вывод выше со вторым экземпляром grep