2014-10-04 3 views
0

У меня есть несколько каталогов, все из которых содержат файл с именем «accepted_hits.bam». Я хотел бы переименовать каждый из этих файлов как «accepted_hits_ID.bam», где ID соответствует имени каталога, в котором находится файл. Например, каталоги называются так:Переименовать определенные файлы во всех каталогах

drwxr-хт-х 3 fr2259 ac_lab 249 4 окт 4:33 0

drwxr-хт-х 4 fr2259 ac_lab 76 3 октября 20:16 1

drwxr-хт-х 4 fr2259 ac_lab 76 окт 3 20:29 10

drwxr-хт-х 4 fr2259 ac_lab 76 окт 3 20:30 11

drwxr-XR-х 3 fr2259 ac_lab 249 окт 3 20:03 12

drwxr-хт-х 4 fr2259 ac_lab 76 Октябрь 3 20:52 13

, и я бы хотел, чтобы accepted_hits файлов, которые будут названы

accepted_hits_0.bam

accepted_hits_1.bam

и т.д.

Я подозреваю, что в командной строке есть умный способ, но до сих пор я не доказал этого умного. Любая помощь приветствуется.

ответ

0

Правильно, понял. В моем первоначальном поиске через прошлый StackOverflow вопросы, я пропустил это один: Rename files in multiple directories to the name of the directory

Я использовал советы от этой должности, чтобы написать команду:

для подкаталога в *; do mv $ subdir/accepted_hits.bam accepted_hits_ $ subdir.bam; сделанный;

, которые привели к следующему:

drwxrwxr-х. 2 fr2259 ac_lab 0 окт. 4 12:19 0

drwxrwxr-x. 2 fr2259 ac_lab 0 Oct 4 12:19 1

drwxrwxr-x. 2 fr2259 ac_lab 0 Oct 4 12:19 2

drwxrwxr-x. 2 fr2259 ac_lab 0 Oct 4 12:19 3

-rw-r - r--. 1 fr2259 ac_lab 4750137 окт. 4 12:11 принят_hits_0.bam

-rw-r - r--. 1 fr2259 ac_lab 95087 Oct 4 12:18 accepted_hits_1.bam

-rw-r - r--. 1 fr2259 ac_lab 1095044 окт. 4 12:18 принято_hits_2.bam

-rw-r - r--. 1 fr2259 ac_lab 470320 окт. 4 12:18 принято_hits_3.bam

извлеченные уроки; искать сложнее. :-)

Смежные вопросы