У меня есть несколько файлов в папке, где я хочу сократить имена. Вот входные файлыПереименование нескольких файлов в папке в unix
Входной
S_12_O_319_K27ac_S12818.sorted.bam
S_12_O_319_K27me3_S12815.sorted.bam
S_12_O_319_K4me1_S12816.sorted.bam
S_12_O_319_K4me3_S12817.sorted.bam
S_14_AS_11_K27ac_S12843.sorted.bam
S_14_AS_11_K27me3_S12840.sorted.bam
S_14_AS_11_K4me1_S12841.sorted.bam
S_14_AS_11_K4me3_S12842.sorted.bam
S_12_O_319_K27ac_S12818.sorted.bam.bai
S_12_O_319_K27me3_S12815.sorted.bam.bai
S_12_O_319_K4me1_S12816.sorted.bam.bai
S_12_O_319_K4me3_S12817.sorted.bam.bai
S_14_AS_11_K27ac_S12843.sorted.bam.bai
S_14_AS_11_K27me3_S12840.sorted.bam.bai
S_14_AS_11_K4me1_S12841.sorted.bam.bai
S_14_AS_11_K4me3_S12842.sorted.bam.bai
Выход
S_12_O_319_K27ac.bam
S_12_O_319_K27me3.bam
S_12_O_319_K4me1.bam
S_12_O_319_K4me3.bam
S_14_AS_11_K27ac.bam
S_14_AS_11_K27me3.bam
S_14_AS_11_K4me1.bam
S_14_AS_11_K4me3.bam
S_12_O_319_K27ac.bam.bai
S_12_O_319_K27me3.bam.bai
S_12_O_319_K4me1.bam.bai
S_12_O_319_K4me3.bam.bai
S_14_AS_11_K27ac.bam.bai
S_14_AS_11_K27me3.bam.bai
S_14_AS_11_K4me1.bam.bai
S_14_AS_11_K4me3.bam.bai
Обратите внимание, что мои файлы имеют два различных расширений, один * .bam другой является * .bam.bai. Я хочу переименовать всех из них сразу, чтобы сократить имя. Удалите часть _S12843.sorted
из всех них. Обратите внимание, что это 5-й знак подчеркивания, а число, следующее за _S12843
, отличается для разных файлов. Только аналогичный шаблон представляет собой строку sorted
. Поэтому хотелось бы усечь всю эту часть, чтобы сократить имя. Как я могу достичь этого с помощью bash или rename или sed. Любая помощь будет оценена по достоинству. Я могу удалить строку с отсортированными, но не цифрами.
Возможного дубликата [пакетное переименование с Bash] (http://stackoverflow.com/questions/602706/batch-renaming-with-bash) – n00dl3