Как перенести файлы в папку с определенным шаблоном в папку назначения?
Я хочу переместить файлы с именами в диапазоне [00-09] в 4-ом столбце, если они разделены разделителем "-".
ls | cut -d "-" -f 4 | grep ^[00-09]
Показывает эти файлы:
UNCID_376947.TCGA-DD-A118-01A-11R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.7.trimmed.txt
UNCID_377115.TCGA-CC-5263-01A-01R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.5.trimmed.txt
UNCID_377252.TCGA-DD-A114-11A-12R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.6.trimmed.txt
Вы можете использовать «цикл цикла»:
for FILE in 'file-list'
do
echo "$FILE"
mv "$FILE" /your/destination/
done
Объяснение:
'file-list' следует заменить на метод, чтобы получить список файлов, которые вы хотите использовать. Например, $(cat files.txt), если у вас уже есть список в файле, pattern*, если файлы в вашем каталоге начинаются с того же шаблона или $(find -iname "*pattern*"), если вы хотите использовать find для получения списка. Выход будет сохранен в переменной FILE один элемент за другим. Команды между do и done выполняются для каждого элемента. Вы можете использовать echo "$FILE", чтобы проверить, соответствует ли ваша команда правильным файлам перед добавлением команды mv в цикл.