I have a directory with many subfolders that look like the following, (keep in mind that FA and T1 content is paired and also ..._L, ..._R content). The quantity of folders named here by letters (a,b,c, etc) can vary a lot:
.
├── FA
│ ├── CN
│ │ ├── CN_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── a
│ │ │ │ └── b
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── c
│ │ │ │ └── d
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── e
│ │ │ ├── f
│ │ │ ├── g
│ │ │ └── h
│ │ └── CN_R
│ │ ├── GE_FSPGR
│ │ │ ├── a
│ │ │ └── b
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── c
│ │ │ └── d
│ │ └── SIEMENS_MPRAGE
│ │ ├── e
│ │ ├── f
│ │ ├── g
│ │ └── h
│ └── Dementia
│ ├── Dementia_L
│ │ ├── GE_FSPGR
│ │ │ ├── i
│ │ │ └── j
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── k
│ │ │ └── l
│ │ └── SIEMENS_MPRAGE
│ │ ├── m
│ │ ├── n
│ │ ├── o
│ │ └── p
│ └── Dementia_R
│ ├── GE_FSPGR
│ │ ├── i
│ │ └── j
│ ├── PHILIPS_MPRAGE
│ │ ├── k
│ │ └── l
│ └── SIEMENS_MPRAGE
│ ├── m
│ ├── n
│ ├── o
│ └── p
└── T1
├── CN
│ ├── CN_L
│ │ ├── GE_FSPGR
│ │ │ ├── a
│ │ │ └── b
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── c
│ │ │ └── d
│ │ └── SIEMENS_MPRAGE
│ │ ├── e
│ │ ├── f
│ │ ├── g
│ │ └── h
│ └── CN_R
│ ├── GE_FSPGR
│ │ ├── a
│ │ └── b
│ ├── PHILIPS_MPRAGE
│ │ ├── c
│ │ └── d
│ └── SIEMENS_MPRAGE
│ ├── e
│ ├── f
│ ├── g
│ └── h
└── Dementia
├── Dementia_L
│ ├── GE_FSPGR
│ │ ├── i
│ │ └── j
│ ├── PHILIPS_MPRAGE
│ │ ├── k
│ │ └── l
│ └── SIEMENS_MPRAGE
│ ├── m
│ ├── n
│ ├── o
│ └── p
└── Dementia_R
├── GE_FSPGR
│ ├── i
│ └── j
├── PHILIPS_MPRAGE
│ ├── k
│ └── l
└── SIEMENS_MPRAGE
├── m
├── n
├── o
└── p
I want to split these directories into test, train and validation based on percentage, that means taking say 60%, 20% and 20% of the children folders (a,b,c,d,etc... are also folders) and copy them to their corresponding set (train, test or validation) while keeping the same folder parents and same paired structure. I don't know if I made myself clear.
The output will be something like this:
.
├── test
│ ├── FA
│ │ ├── CN
│ │ │ ├── CN_L
│ │ │ │ ├── GE_FSPGR
│ │ │ │ │ ├── a
│ │ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ │ ├── c
│ │ │ │ └── SIEMENS_MPRAGE
│ │ │ │ ├── e
│ │ │ │ ├── f
│ │ │ └── CN_R
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── a
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── c
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── e
│ │ │ ├── f
│ │ └── Dementia
│ │ ├── Dementia_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── i
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── k
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── m
│ │ │ ├── n
│ │ └── Dementia_R
│ │ ├── GE_FSPGR
│ │ │ ├── i
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── k
│ │ └── SIEMENS_MPRAGE
│ │ ├── m
│ │ ├── n
│ └── T1
│ ├── CN
│ │ ├── CN_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── a
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── c
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── e
│ │ │ ├── f
│ │ └── CN_R
│ │ ├── GE_FSPGR
│ │ │ ├── a
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── c
│ │ └── SIEMENS_MPRAGE
│ │ ├── e
│ │ ├── f
│ └── Dementia
│ ├── Dementia_L
│ │ ├── GE_FSPGR
│ │ │ ├── i
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── k
│ │ └── SIEMENS_MPRAGE
│ │ ├── m
│ │ ├── n
│ └── Dementia_R
│ ├── GE_FSPGR
│ │ ├── i
│ ├── PHILIPS_MPRAGE
│ │ ├── k
│ └── SIEMENS_MPRAGE
│ ├── m
│ ├── n
├── train
│ ├── FA
│ │ ├── CN
│ │ │ ├── CN_L
│ │ │ │ ├── GE_FSPGR
│ │ │ │ │ ├── b
│ │ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ │ ├── d
│ │ │ │ └── SIEMENS_MPRAGE
│ │ │ │ ├── g
│ │ │ │ ├── h
│ │ │ └── CN_R
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── b
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── d
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── g
│ │ │ ├── h
│ │ └── Dementia
│ │ ├── Dementia_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── j
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── l
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── o
│ │ │ ├── p
│ │ └── Dementia_R
│ │ ├── GE_FSPGR
│ │ │ ├── j
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── l
│ │ └── SIEMENS_MPRAGE
│ │ ├── o
│ │ ├── p
│ └── T1
│ ├── CN
│ │ ├── CN_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── b
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── d
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── g
│ │ │ ├── h
│ │ └── CN_R
│ │ ├── GE_FSPGR
│ │ │ ├── b
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── d
│ │ └── SIEMENS_MPRAGE
│ │ ├── g
│ │ ├── h
│ └── Dementia
│ ├── Dementia_L
│ │ ├── GE_FSPGR
│ │ │ ├── j
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── l
│ │ └── SIEMENS_MPRAGE
│ │ ├── o
│ │ ├── p
│ └── Dementia_R
│ ├── GE_FSPGR
│ │ ├── j
│ ├── PHILIPS_MPRAGE
│ │ ├── l
│ └── SIEMENS_MPRAGE
│ ├── o
│ ├── p
└── validation
├── FA
│ ├── CN
│ │ ├── CN_L
│ │ │ ├── GE_FSPGR
│ │ │ │ ├── aa
│ │ │ ├── PHILIPS_MPRAGE
│ │ │ │ ├── bb
│ │ │ └── SIEMENS_MPRAGE
│ │ │ ├── cc
│ │ │ ├── dd
│ │ └── CN_R
│ │ ├── GE_FSPGR
│ │ │ ├── aa
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── bb
│ │ └── SIEMENS_MPRAGE
│ │ ├── cc
│ │ ├── dd
│ └── Dementia
│ ├── Dementia_L
│ │ ├── GE_FSPGR
│ │ │ ├── ee
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── ff
│ │ └── SIEMENS_MPRAGE
│ │ ├── gg
│ │ ├── hh
│ └── Dementia_R
│ ├── GE_FSPGR
│ │ ├── ee
│ ├── PHILIPS_MPRAGE
│ │ ├── ff
│ └── SIEMENS_MPRAGE
│ ├── gg
│ ├── hh
└── T1
├── CN
│ ├── CN_L
│ │ ├── GE_FSPGR
│ │ │ ├── aa
│ │ ├── PHILIPS_MPRAGE
│ │ │ ├── bb
│ │ └── SIEMENS_MPRAGE
│ │ ├── cc
│ │ ├── dd
│ └── CN_R
│ ├── GE_FSPGR
│ │ ├── aa
│ ├── PHILIPS_MPRAGE
│ │ ├── bb
│ └── SIEMENS_MPRAGE
│ ├── cc
│ ├── dd
└── Dementia
├── Dementia_L
│ ├── GE_FSPGR
│ │ ├── ee
│ ├── PHILIPS_MPRAGE
│ │ ├── ff
│ └── SIEMENS_MPRAGE
│ ├── gg
│ ├── hh
└── Dementia_R
├── GE_FSPGR
│ ├── ee
├── PHILIPS_MPRAGE
│ ├── ff
└── SIEMENS_MPRAGE
├── gg
├── hh
I really have no idea how to do this, I'll appreciate it if you can help me.
I've seen this post Distributing thousands of files over subfolders, but I think it doesn't suit my problem
Thanks