Como o comando rename
não funcionou para mim por motivos desconhecidos e não obtive outras respostas para a minha pergunta, eu mesmo tentei fazer a renomeação possível. Isso pode não ser a melhor abordagem para renomear os arquivos, mas funcionou para mim e é por isso que gostaria de publicá-lo como resposta para que, se alguém mais ler isso, possa obter alguma ajuda para alterar os nomes dos arquivos da maneira que fiz.
Agora, para mim, eu sei que todos os arquivos terão um texto específico em seus nomes, que é a palavra "Bloco". A seguir estão os nomes dos arquivos antes de sua renomeação ser feita:
anks@anks:~/anks$ ls -lrt
total 4
-rw-r--r-- 1 anks anks 0 Jul 25 14:47 Bharti TRX Block [email protected]
-rw-r--r-- 1 anks anks 0 Jul 25 14:47 Bharti TRX Block [email protected]
-rw-r--r-- 1 anks anks 0 Jul 25 14:47 Bharti TRX Block [email protected]
-rw-r--r-- 1 anks anks 0 Jul 25 14:47 Bharti TRX Block [email protected]
-rw-r--r-- 1 anks anks 0 Jul 25 14:48 Bharti TRX Block [email protected]
Agora eu escrevi um pequeno script de shell para tornar isso possível. A seguir está o código:
#!/bin/bash
PATH="/home/ebfijjk/anks"
# Put the old filenames in a file.
ls $PATH | grep Block >> oldValues
# Put the new names without " " or "@" or "$" in another file
cat oldValues | sed 's/\$/_/g' | sed 's/\@/_/g' | sed 's/ /_/g' >> newValues
# Create a new file with Old names and New names seperated by a #.
paste -d'#' oldValues newValues >> oldAndNew
# Read the file with both old and new names and rename them with the new names.
while IFS='#'; read oldValue newValue
do
mv "$oldValue" "$newValue"
done < oldAndNew
rm oldValues newValues oldandNew
E é isso, quando executo o script, ele renomeia todos os nomes de arquivos com espaços em branco ( ) ou
$
ou @
com _
em vez desses caracteres.