Renomeando arquivos de acordo com o padrão [duplicate]

2

Vamos supor que eu tenha seis arquivos nomeados:

1.a, 1.b, 1.c
2.a, 2.b, 2.c

onde a, b, c são extensões de arquivo como sh, txt, etc.

Agora, desejo renomear os arquivos 1.a, 1.b, 1.c com 5.a, 5.b, 5.c e 2.a, 2.b, 2.c com 6.a, 6.b and 6.c . Aqui, tanto 2 quanto 6 são entradas fornecidas pelo usuário.

    
por Sibi 15.01.2013 / 07:05

3 respostas

3

Não tentei, mas deve funcionar

$ rename 's/1/5/' 1.*
$ rename 's/2/6/' 2.*

renomear página do manual

    
por 15.01.2013 / 08:24
1

Aqui está uma função bash que fará o truque:

do_rename() {
   oldnum=$1 # assign parameters for clarity
   newnum=$2

   for f in "$oldnum".*; do # get all files matching the old number
       mv "$f" "$newnum"."${foo##*.}" # use a parameter expansion to get the exetension of the current filename
   done
}
    
por 15.01.2013 / 07:26
1

Um caminho:

#!/bin/bash

for num in 1 2
do
    read -p "Enter new val for files starting with $num :" val
    for i in ${num}*.[abc]
    do
            ext=${i##*.}
            mv $i "$val.$ext"
    done
done
    
por 15.01.2013 / 07:25

Tags