shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: [shellscript] Re: renomeando arquivos


From: Flavio Junior
Subject: Re: [shell-script] Re: [shellscript] Re: renomeando arquivos
Date: Tue, 13 May 2008 09:55:39 -0300

Credu..
gmail zuo tudo..

for file in *; do
      # Fazendoa variavel CLI receber um array
      # O sed transforma a saida em CLIENTE DATA BOLETO EXTENSAO
      # Uni tudo com o ( ) pra virar um array pro shell
      CLI=($(sed 's/\([A-z]\+\)\(.*\)-\([0-9]\+\)\(.*\)$/\1 \2 \3 \4/'
<<<$file));
      # $file é o arquivo original, e depois eu monto ele da forma que quiser
      # com a ajuda do array criado
       mv $file "${CLI[2]}-${CLI[1]}${CLI[0]}${CLI[3]}";
done


--

Flavio do Carmo Junior aka waKKu
#bash-br @ irc.freenode.net

2008/5/13 Flavio Junior <address@hidden>:
> ACho que ta bem simples de entender...
>
>  lazlo:~/test# ls -l
>  total 0
>  -rw-r--r-- 1 root root 0 May 13 09:47 Naaaame20080424-012.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 Naaame20080424-012.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 Naame20080424-012.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 Name20080424-012.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:34 Nome20080424-012.pdf
>  lazlo:~/test# for file in *; do CLI=($(sed
>  's/\([A-z]\+\)\(.*\)-\([0-9]\+\)\(.*\)$/\1 \2 \3 \4/' <<<$file)); echo
>  mv $file "${CLI[2]}-${CLI[1]}${CLI[0]}${CLI[3]}"; done
>  mv Naaaame20080424-012.pdf 012-20080424Naaaame.pdf
>  mv Naaame20080424-012.pdf 012-20080424Naaame.pdf
>  mv Naame20080424-012.pdf 012-20080424Naame.pdf
>  mv Name20080424-012.pdf 012-20080424Name.pdf
>  mv Nome20080424-012.pdf 012-20080424Nome.pdf
>  lazlo:~/test#
>
>
>  No caso so remover o "echo" da linha ali.. que eu so mandei printar...
>
>  lazlo:~/test# for file in *; do CLI=($(sed
>  's/\([A-z]\+\)\(.*\)-\([0-9]\+\)\(.*\)$/\1 \2 \3 \4/' <<<$file)); mv
>  $file "${CLI[2]}-${CLI[1]}${CLI[0]}${CLI[3]}"; done
>  lazlo:~/test# ls -l
>  total 0
>  -rw-r--r-- 1 root root 0 May 13 09:47 012-20080424Naaaame.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 012-20080424Naaame.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 012-20080424Naame.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:47 012-20080424Name.pdf
>  -rw-r--r-- 1 root root 0 May 13 09:34 012-20080424Nome.pdf
>  lazlo:~/test#
>
>
>  Espero ter ajudado,
>
>  --
>
>  Flávio do Carmo Júnior aka waKKu
>  #bash-br @ irc.freenode.net
>
>  I'm back :D
>
>  2008/5/10 Paulo Silvestre Schmitt <address@hidden>:
>
>
> >
>  >
>  >
>  >
>  >
>  >
>  > *sei* que está tosco e é lerdo, mas é o que consegui fazer em 10 minutos. e
>  >  funciona.
>  >
>  >  ...
>  >  do
>  >  nome="$(echo $a | cut -d. -f1)"
>  >  ext="$(echo $a | cut -d. -f2)"
>  >  num="$(echo $nome | cut -d'-' -f2)"
>  >  nomeSemNum="$(echo $nome | cut -d'-' -f1)"
>  >  pessoa="$(echo $nomeSemNum | sed 's/[0-9]//g')"
>  >  data="$(echo $nomeSemNum | sed 's/[A-z]//g')"
>  >  echo mv $a $num-$data$pessoa.$ext
>  >  done
>  >
>  >  []s PSS
>  >
>  >  2008/5/10 (R)i(c)@(R)ÐØ <address@hidden>:
>  >
>  >  > consegui evoluir até aqui, com ER, mais ainda não foi o suficiente.
>  >  >
>  >  > find -maxdepth 1 -type f -name "*.pdf"|awk -F/ '{print $2}'|while read 
> a;
>  >  > do echo mv $a `echo $a|grep -oE "([0-9])+\.";echo $a|grep -oE
>  >  > "([0-9]){8}";echo $a|grep -oE "[A-Z]([a-zA-Z])+"`.pdf; done
>  >  >
>  >  > Conto com a ajuda dos senhores!!
>  >  >
>  >  >
>  >  > 2008/5/10 (R)i(c)@(R)ÐØ <address@hidden>:
>  >  >
>  >  > Pessoal, eu costumo usar este script para renomear arquivos:
>  >  >> find -maxdepth 1 -type f -name "Eliana*"|while read a; do echo mv $a
>  > `echo
>  >  >> $a|sed -e 's#OldFile#NewFile#' `;done
>  >  >>
>  >  >> Entretanto em minha nova necessidade tá complicado e ainda não consegui
>  >  >> faze-lo.
>  >  >> existe varios boletos com o seguinte padrão, Nome20080424-012.pdf, e
>  > devo
>  >  >> renomea-los para 012-20080424Nome.pdf, onde o nome é o nome do Cliente,
>  > 012
>  >  >> é o numero do boleto, e 20080424 é a data de vencimento de cada boleto.
>  >  >>
>  >  >> Estudei os registradores internos do sed, a parti da sugestão do Tiago,
>  >  >> mas ainda não consegui resolver o meu problema.
>  >  >> estou tentando usar ER, mas não consigo definir uma tecnica ainda para
>  >  >> trocar os valores.
>  >  >>
>  >  >> Aguado ajuda.
>  >  >> att.
>  >  >> Ricardo Brito
>  >  >>
>  >  >> 2008/4/24 (R)i(c)@(R)ÐØ <address@hidden>:
>  >  >>
>  >  >>> tenho desenas de arquivos com o seguinte padrão:
>  >  >>>
>  >  >>> nome20080424.pdf
>  >  >>> onde o numero é o ID do arquivo e desejo renomea-los para:
>  >  >>> 20080424nome.pdf
>  >  >>>
>  >  >>> Como posso faze-lo?
>  >  >>>
>  >  >>> --
>  >  >>>
>  >  >>> ----------------------------------------------------------
>  >  >>> A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTs 5.28)
>  >  >>> The grace of our Lord Jesus Christ be with you. (1ªTs 5.28)
>  >  >>> Jesus te ama, aceite-O! Jesus loves you, accept you Him!
>  >  >>>
>  >  >>> (R)i(c)@(R)ÐØ
>  >  >>>
>  >  >>
>  >  >>
>  >  >>
>  >  >> --
>  >  >>
>  >  >> ----------------------------------------------------------
>  >  >> A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTs 5.28)
>  >  >> The grace of our Lord Jesus Christ be with you. (1ªTs 5.28)
>  >  >> Jesus te ama, aceite-O! Jesus loves you, accept you Him!
>  >  >>
>  >  >> (R)i(c)@(R)ÐØ
>  >  >>
>  >  >
>  >  >
>  >  >
>  >  > --
>  >  >
>  >  > ----------------------------------------------------------
>  >  > A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTs 5.28)
>  >  > The grace of our Lord Jesus Christ be with you. (1ªTs 5.28)
>  >  > Jesus te ama, aceite-O! Jesus loves you, accept you Him!
>  >  >
>  >  > (R)i(c)@(R)ÐØ
>  >  >
>  >  >
>  >
>  >  [As partes desta mensagem que não continham texto foram removidas]
>  >
>  >  
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]