Я хотел бы переименовать файлы FASTA с именем организма (хранится в файле) и идентификатором (часть имени файла).
Все файлы имеют одинаковый формат в имени файла и сохраненных данных, каждый файл имеет только один заголовок FASTA и соответствующую последовательность.
Исходное имя файла:
$ head GCF_000008205.1_ASM820v1_genomic.fna
>NC_007295.1 Mycoplasma hyopneumoniae J, complete genome
CCAAAATCAACTTTATTAAATGTGCTAAATAAAGTTGATAAAATGTTTGCAAAAACATTTTTGTTGTTTTAAACAAAACA
AATTGATTTAAAAATTATACTACAAAATTAAAGGAAAATTTATAAAATGCAAACAAATAAAAATAATTTAAAGGTTAGAA
CACAGCAAATTAGACAACAAATTGAAAATTTATTAAATGATCGAATGTTGTATAACAACTTTTTTAGCACAATTTATGTA
...
Я бы хотел переименовать только имя файла, используя идентификатор сборки (GCF_000008205.1) в имени файла, а также второе и третье слова заголовка FASTA (Mycoplasma hyopneumoniae):
Mycoplasma_hyopneumoniae_GCF_000008205.1.fna
Я пробовал это:
for fname in *.fna; do
mv -- "$fname" \
"$(awk 'NR==1{printf("%s_%s_%s\n",$2,$3,substr($1,2));exit}' "$fname")".fna
done
результат:
Mycoplasma_hyopneumoniae_NC_007295.1.fna
Но результат показывает код перед именем организма вместо идентификатора, который меня интересует, который находится в имени исходного файла.
Спасибо!