簡體   English   中英

在列表上使用mv命令並重命名每個文件

[英]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/da​​ta/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM