Adicione o nome do prefixo em um arquivo no script Perl

1

Estou tentando escrever um script perl para adicionar o nome do prefixo no arquivo (~ 100 arquivos), mas não consegui fazer isso.

Exemplo de caso que significa:

abc.jpg change to NYear_abc.jpg     
def.jpg change to NYear_def.jpg    
ghi.jpg change to NYear_ghi.jpg

Isso é o que eu tento pesquisar e escrever:

#!/usr/bin/perl 
for (filename in "*".jpg;)
do {rename "$filename" "prefix_$filename";}

Isso me mostra a falta do operador, alguém pode ajudar?

    
por star1017 11.12.2014 / 10:08

2 respostas

3

Eu não sei sobre a sintaxe do perl e o script perl, mas posso ajudá-lo a renomear todos os arquivos .jpg com seu comando rename da seguinte forma:

Primeiro você tem que mudar o diretório que você tem todo o .jpg lá. por exemplo, se os arquivos estiverem armazenados em /home/star1017/jpg-file , eu digito assim:

cd /home/star1017/jpg-file

execute

rename -n 's/(.*)\.jpg$/prefix_.jpg/' *.jpg

Corresponda tudo (.*) , que termina $ com .jpg , depois adicione prefix_ e imprima o grupo correspondente (isso significa imprimir o grupo correspondente usando sua referência anterior) e imprima a extensão . O comando é executado para todos os arquivos *.jpg .

Teste:

file01.jpg renamed as prefix_file01.jpg
file02.jpg renamed as prefix_file02.jpg
file03.jpg renamed as prefix_file03.jpg
file04.jpg renamed as prefix_file04.jpg
file05.jpg renamed as prefix_file05.jpg

Ou, se você não quiser mudar para esse diretório, execute isto:

rename -n 's/(.*)\/(.*)\.jpg$/\/prefix_.jpg/' /home/star1017/jpg-file/*.jpg

no final, se você garantir o teste, remova a opção -n para renomear de verdade nos arquivos reais.

    
por αғsнιη 11.12.2014 / 10:23
0

Você queria um script perl, aqui está seu script Perl ;)

#!/usr/bin/perl
use strict;
use warnings;

foreach $_ (@ARGV) {
   rename($_, "NYear_$_");
}

Supondo que o nome do script seja foo , comece com

./foo *.jpg

Exemplo

% ls *.jpg
abc.jpg  def.jpg  ghi.jpg

% ./foo *.jpg

% ls *.jpg   
NYear_abc.jpg  NYear_def.jpg  NYear_ghi.jpg
    
por A.B. 03.07.2015 / 20:16