[英]Using mv command on a list and renaming each file
我正在嘗試將已分析的某些圖像從一個文件夾移動到新文件夾,並重命名它們。 每個文件(我們將稱為file.nii)在每個患者文件夾中都具有相同的名稱,並且我希望在移動它們時根據其患者ID對其重命名。 我已經創建了一個列表(將其稱為dti.txt),並且了解它需要看起來像下面發布的內容:
for ii in $(cat dti.txt); do cd ${INFINITE_MRI_DATA}/${ii};
mv file.nii destination; done
我堅持要嘗試重命名每個與患者ID相對應的文件,因此file.nii將變為117.nii,119.nii,依此類推。 如果有幫助,他們的患者ID在列表的文件路徑中。 這是完整文件路徑的樣子:
/gandg/infinite/imaging_data/individuals/inf0238/1/dti/dtifit/analysis/
如果這是一個愚蠢的問題或格式不正確,我深表歉意。 我還是編碼世界的新手。 感謝您的幫助!
您必須從父目錄中提取患者ID,這是使用路徑/my/mri/data/117/file.nii(其中117是患者ID)的一個示例:
patientId=$(readlink -f $ii | dirname | cut -f'/' 4)
然后,您可以將其用作新文件名的前綴
mv $oldfile ${patientId}_mri.nii
例如
Create one file in that file put the path which consist of patient id
i created k.txt file and mentioned the path
cat k.txt
/my/dir/117/ol
/my/dir/118/ol
for i in `awk -F "/" '{print $4}' k.txt`; do for j in 1.txt 2.txt; do mv $j $i.nii; done;done
Used below command to rename the old file with patientid.nii
where 1.txt 2.txt is old files
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.