Renomear arquivo alterando posição de caracter

1. Renomear arquivo alterando posição de caracter

Gilberto Moraes
GrmGilberto

(usa CentOS)

Enviado em 17/02/2014 - 13:11h

Boa tarde a todos,

Preciso criar um script para renomear alguns arquivos, porém todos possuem um padrão que deverá ser mudado, EX:

Nome atual do arquivo, onde após o segundo "_" vem o ano 2009 e o mes 01

SIN_047508411000407_200901.txt
ano 2009 mes 01


Preciso de um script para inverter essa posição o mesmo devera ficar assim:

SIN_047508411000407_012009.txt
mes 01 ano 2009


Gostaria de saber qual a maneira de realizar essa alteração.




  


2. Re: Renomear arquivo alterando posição de caracter

Ton Melo
IZhaq_Melo

(usa FreeBSD)

Enviado em 17/02/2014 - 14:51h

GrmGilberto escreveu:

Boa tarde a todos,

Preciso criar um script para renomear alguns arquivos, porém todos possuem um padrão que deverá ser mudado, EX:

Nome atual do arquivo, onde após o segundo "_" vem o ano 2009 e o mes 01

SIN_047508411000407_200901.txt
ano 2009 mes 01


Preciso de um script para inverter essa posição o mesmo devera ficar assim:

SIN_047508411000407_012009.txt
mes 01 ano 2009


Gostaria de saber qual a maneira de realizar essa alteração.



crei um exemplo que lhe ajudaremos com todo prazer do mundo.

dicas:

pra listar arquivos segundo algum padrão.

ls -lrt | grep -i "seu padrao de arquivo"

depois:

para renomear o arquivo apenas use:

mv <file antigo> <file novo>

se voce quer escolher dentre opções use:

if

agora estruture o que eu lhe disse e voce terá um exemplo.



3. Re: Renomear arquivo alterando posição de caracter

Gilberto Moraes
GrmGilberto

(usa CentOS)

Enviado em 17/02/2014 - 15:10h

Na verdade oq eu preciso é saber como eu armazeno em uma variável determinada posição da string, por exemplo:

a string: SIN_047508411000407_200901.txt

gostaria de armazenar, os caracteres de posição 25 e 26 no caso "01".

feito isso, o restante eu me viro aqui..rs





4. Re: Renomear arquivo alterando posição de caracter

Alexandre
afteixeira

(usa openSUSE)

Enviado em 06/03/2014 - 12:15h

Não o melhor jeito.. Você pode melhorar:

v="SIN_047508411000407_200901.txt"
echo ${v%.txt} |awk -F "_" '{printf "%s_%s_%s%s\n",$1,$2,substr($3,5,6),substr($3,0,4)}'

Agora ja sabe como pegar as posições da string, pode fazer algo mais otimizado!

[]'s






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts