Заранее извиняюсь, если вопрос очень основательный c.
Мне нужно скопировать некоторые файлы из одного места в другое. Я пытаюсь написать скрипт в bash, который автоматизирует процесс. Чтобы сделать в oop, я использую список и шаблоны, потому что имена файлов не согласованы. То, что у меня есть (обратите внимание, что 'должно быть `):
for subject in cat 'subjects_list.txt' ; do
cp /input/$subject/*_task/*_task-file.nii /output/$subject/dir1/${subject}_task-file.nii
done
Все это работает нормально, проблема в том, что иногда есть 2 каталога с именем' * _task 'в каталоге субъекта, с файл * _task-file.nii каждый. Однако один из этих файлов не является полным, но из-за подстановочного знака скрипт захватывает оба. Я хотел бы добавить в свой сценарий способ проверить, существует ли более одного каталога с именем task, и если это так, возьмите * _task-file.nii с большим размером (и откажитесь от другого - больший размер должен означать, что файл готов). Я знаю, что могу использовать wc -c $file
для проверки размера файла. Однако я не знаю, какой был бы самый простой способ (мои bash знания довольно просты c), чтобы написать в моем сценарии только копию файла с большим размером. Если бы кто-то был рад указать мне правильное направление, чтобы я мог написать сценарий go, я был бы очень признателен.
Спасибо!