你好?目錄結構如下。
/image03
/UM1234ABCD2R1_MRI
/UM1234ABCD1R1_MRI
/UM0120AABD1R1_DTI
/UM0120AABC1R1_bold_reward
/CU0112XCMF2R1_b0map_bold
/CU1243XMDM1R1_b0map_dti
.....
有數百個這樣的目錄,在每個目錄中,我們只想為不包含'b0map'的目錄輸出以下句子。
dcm2bids -d (目錄名) -p (目錄的前 6 個字母) -S (目錄的第 10 個字母) -c /image03/dcm2bids_config.json
為此,我像這樣撰寫并運行了一個shell腳本,但是出現了錯誤。你能告訴我如何解決它嗎?
#!/bin/bash
DICOM_DIR = /image03/*/
PARTICIPANT_ID = {DICOM_DIR:0:6}
SESSION_ID = {DICOM_DIR:10}
for /image03/*$PARTICIPANT_ID*[^b0map]*/
do echo dcm2bids -d $DICOM_DIR -p $PARTICIPANT_ID -S $SESSION_ID -c /image03/dcm2bids_config.json
done
錯誤資訊
(EMBARC) [drbong@node16 EMBARC]$ ./anatfuncdti
./anatfuncdti: line 3: DICOM_DIR: command not found
./anatfuncdti: line 4: PARTICIPANT_ID: command not found
./anatfuncdti: line 5: SESSION_ID: command not found
./anatfuncdti: line 9: `/image03/*$PARTICIPANT_ID*[^b0map]*/': not a valid identifier
感謝您在忙碌時的幫助。
uj5u.com熱心網友回復:
這是 bash ...您的變數名和值之間沒有空格
更像:
DICOM_DIR='/image03/*/'
uj5u.com熱心網友回復:
建議如下:
find . -type d -not -name "*b0map*" | awk '{printf("dcm2bids -d %s -p %s -S -c /image03/dcm2bids_config.json\n", $0, substr($0,1,6), substr($0,10,1));}'
uj5u.com熱心網友回復:
find /image03 -type d -print0 |
{m,g}awk '($!NF=sprintf("%s -d %-35s -p %.6s -S %.1s -c /%s/%s_config.json;",
_="dcm2bids",$ _,$NF, substr($NF,10), $(NF-1), _))^(/b0map/)' \
RS='\0' FS='[/]'
———————————————————————————
dcm2bids -d /image03/UM1234ABCD2R1_MRI -p UM1234 -S D -c /image03/dcm2bids_config.json;
dcm2bids -d /image03/UM1234ABCD1R1_MRI -p UM1234 -S D -c /image03/dcm2bids_config.json;
dcm2bids -d /image03/UM0120AABD1R1_DTI -p UM0120 -S D -c /image03/dcm2bids_config.json;
dcm2bids -d /image03/UM0120AABC1R1_bold_reward -p UM0120 -S C -c /image03/dcm2bids_config.json;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/479242.html
上一篇:WPF 分組
