2014-02-12 2 views
0

У меня есть несколько каталогов с рисунком:Из каталогов создания файлов изменения их окончание

$find -name "*.out" 
./trnascanse.out 
./darn.out 
./blast_rnaz.out 
./erpin.out 
./rnaspace_cli.out 
./yass.out 
./atypicalgc.out 
./blast.out 
./combine.out 
./infernal.out 
./ecoli.out 
./athaliana.out 
./yass_carnac.out 
./rnammer.out 

я могу получить список в файл find -name "*.out" > files, потому что я хочу, чтобы создать для каждого каталога файл с расширением .ref вместо .out : trnascanse.ref, darn.ref, blast_rnaz.ref и так далее.

Я бы сказал, что это возможно с некоторыми grep и touch, но я не знаю, как это сделать. Есть идеи? Или просто создать каждый из них вручную - это единственный способ (как и в случае с этими каталогами). Благодаря

ответ

0

Вот один из способов:

for d in *.out ; do echo touch "${d%.out}.ref" ; done 

в $ {d% .out} расширяет $ D и удаляет конечные .out. Читайте об этом на странице man bash.

Если выход вышеуказанного однострочного изображения выглядит нормально, проведите его до sh или удалите echo и запустите его.

+0

Выход строки имеет тип: 'mv rnammer.out rnammer.ref' Затем я получаю это сообщение:' mv: не может перезаписывать не-каталог 'rnammer.ref 'с каталогом 'rnammer.out'' для каждого, и ничего не произошло. – Llopis

+0

@Llopis Извините, я прочитал его, как вы хотите переименовать некоторые каталоги. Просто коснитесь, как я отредактировал сейчас. Однако в сообщениях об ошибках говорится, что у вас уже есть файл с именем rnammer.ref – nos

+0

Ну, я создал вручную эти файлы .. Ваше редактирование работало нормально, поэтому я предполагаю, что начальный код с 'mv' insted' touch' также работал (если бы я не стал испортил его). Спасибо – Llopis

0

Используйте это:

find -maxdepth 1 -type d -printf "%f" -exec bash -c "mkdir $(echo '{}' | sed 's/\.out$//').ref" \; 
+0

Это сообщение содержит следующую команду: 'find: warning: вы указали опцию -maxdepth после аргумента non-option -type, но параметры не являются позиционными (-maxdepth влияет на тесты, указанные перед ним, а также те указанный после него). Пожалуйста, укажите параметры перед другими аргументами. ' Он также создал каталоги типа' darn.out.ref', не удаляя '.out' – Llopis

+0

Извините, моя ошибка. Однако это было всего лишь предупреждение. Обновил сообщение – hek2mgl

+0

Спасибо, но @nos был быстрее, извините – Llopis

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