我有这个父目录 X 和这两个子目录 A 和 B(见图 1):文件夹 A 包含特定主题的文件,我想将这些文件移动到文件夹 B 中的其他相应文件夹。例如,在文件夹 A 中,我有很多不同主题的文件以不同的扩展名结尾(eeg.eeg、eeg.json、eeg.vhdr 和 eeg.vmrk)(参见照片 2)。
我想为每个主题获取所有这些文件并将它们移动到 B 的子文件夹,其中有一个所有主题的子文件夹:B>>“subject_id”>>ses-t1>>eeg。目标文件夹应该是每个参与者文件夹中的“eeg”文件夹。.
好处是,我认为文件夹 A 中文件的起始名称与主题子文件夹名称相对应。例如,文件以sub-CDPC0001 _ses-01_task-rest_eeg.eeg 开头,类似于文件夹 B ( sub_CDPC0001)中此特定主题的主题文件夹
过去,有一个用于此的迷你脚本,但我认为现在这种安排不能正常工作:
for dir in $(ls -d */ses-t1); do
find "./$dir/" -name '*_eeg.eeg' -exec mv {} "$dir/eeg" \;
find "./$dir/" -name '*_eeg.vhdr' -exec mv {} "$dir/eeg" \;
find "./$dir/" -name '*_eeg.vmrk' -exec mv {} "$dir/eeg" \;
find "./$dir/" -name '*_eeg.json' -exec mv {} "$dir/eeg" \;
#find "./$dir/" -name '*_anat.nii.gz' -exec mv {} "$dir/t1" \;
done
这会列出文件夹 A 中的所有文件,但无法将它们移动到所需的 eeg 文件夹中。非常感谢您的回答,因为有很多数据,手动移动它们很容易出错并且非常繁琐。