прежде всего мой код:
#!/bin/tcsh
#linebroadening, zero filling, Fouriertransform, Phase Correction, automatic baseline corr.,output
xyz2pipe -in fid/test%03d.fid -x -verb \
| nmrPipe -fn EM -lb 20.0 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT -auto \
| nmrPipe -fn PS -p0 90.0 -p1 0.0 -di \
| nmrPipe -fn POLY -auto \
| pipe2xyz -out ft2_01/test%03d.ft2 -ov -verb
\
#ROIs:
xyz2pipe -in ft2_01/test%03d.ft2 -x -verb \
| nmrPipe -fn EXT -x1 -109ppm -xn -120ppm -sw \
| pipe2xyz -out ft2_roi/test%03d.ft2 -ov -verb
\
mkdir -p ft2_sum
mkdir -p ft2_sum_txt
proj2D.tcl -in ft2_roi/test001.ft2 -sum -out ft2_sum/test001
pipe2txt.tcl ft2_sum/test001/1H.dat > ft2_sum_txt/test001.txt
Краткое описание кода до строки кода №. 17: обработка необработанных трехмерных данных, которые сохраняются в плоскостях двумерных данных в виде файлов .ft2. Их имена файлов такие: test001.ft2 test002.ft2. , , теперь я хотел перебрать два разных скрипта над этими файлами. Выше приведен рабочий пример того, как это работает для одного файла. К сожалению, я не понимаю, как эта запись %03d
работает внутри xyz2pipe. Есть ли способ получить доступ к этому методу итерации напрямую с помощью сценариев proj2D.tcl и pipe2txt.tcl (может быть, через каналы оболочки)? Поэтому в качестве альтернативы я попытался самостоятельно манипулировать именами файлов, чтобы перебрать все соответствующие файлы:
foreach file (ft2_roi/*)
echo $file
echo $file/ft2_roi
echo ${file%.ft2}
echo ${file#ft2_roi/}
end
, что дает следующий вывод:
ft2_roi/test001.ft2
ft2_roi/test001.ft2/ft2_roi
Missing '}'.
Итак, манипуляции со строками echo ${file%.ft2}
и echo ${file#ft2_roi/}
не работает правильно Что я делаю неправильно? Спасибо за любой совет или помощь! С наилучшими пожеланиями, Ханнес