Допустим, в этом каталоге:/home/data/

Существует 100 папок, имена этих папок: 24538_7#1 , 24538_7#2 , 24538_7#3 ... до 24538_7#384 .

В каждой папке много файлов и папок.

Имена нужного файла в каждой папке: Aligned.out.sam. Папка для переименованных файлов - /home/SAM

Как я могу скопировать все эти файлы в новую папку (/home/SAM) и правильно переименовать их в 24538_7#1.sam , 24538_7#2.sam , 24538_7#3.sam ......?

Я попытался сделать это командой ниже, но это не сработало:

mv /home/data/*/Aligned.out.sam /home/SAM/*.sam

1 ответ1

1

Нечто подобное

for sam in */Aligned.out.sam; do \
  name=$(basename $(dirname "$sam")) \
  cp "$sam" "/home/SAM/$name.sam" \
done

может сделать трюк

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .