Renomeie arquivos (apague alguns caracteres que não são sempre os mesmos)

1

Eu tenho alguns arquivos com nomes como este:

DA1_ATGCATG_L001_R1.fastq.gz
Oeu43_TCATGAC_L004_R2.fastq.gz

Eu quero excluir a parte após o primeiro "_", mas manter o final dos nomes de "_R" para obter isso:

DA1_R1.fastq.gz
Oeu43_R2.fastq.gz

Como posso conseguir isso?

    
por Gilles 28.04.2015 / 14:43

3 respostas

3

Em bash ou POSIX sh :

for file in *.fastq.gz; do
    mv -- "$file" "${file%%_*}_${file##*_}"
done
    
por 28.04.2015 / 15:08
1

com zsh :

autoload zmv # best in ~/.zshrc
zmv '(*)_*(_R*)' '$1$2'
    
por 28.04.2015 / 15:05
1

Usando o rename do perl (chamado prename no Ubuntu)

prename 's/^([^_]*).*(_R.*)/$1$2/' *.fastq.gz
    
por 28.04.2015 / 15:42