Condição para Mover Arquivos [RESOLVIDO]

1. Condição para Mover Arquivos [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 14/03/2013 - 11:04h

Bom Dia Galera

Preciso de um Help. Basicamente eu preciso guardar algumas partes de dois arquivos em duas variáveis diferentes. EXEMPLO:

/temp/Diretorio_1/
PZD_004_004_DR237087_T1D.tgz
PZD_004_004_DR237087_O1D.tgz
PZD_004_004_DR237087_R3D.tgz
/temp/Diretorio_2/
P4D_004_004_DR237087_T1D.tgz
P4D_004_004_DR237087_J1D.tgz
P4D_004_004_DR237087_V3D.tgz

Neste caso eu utilizei o cut para pegar a parte do arquivo que preciso com parametro ficando assim as variaveis;

/temp/Diretorio_1/
VAR_1=cut -d"_" -f4 | cut -c1-3'

/temp/Diretorio_2/
VAR_2='cut -d"_" -f4 | cut -c1-3'


O que estou travando. Em fazer a condição para o mesmo. Preciso que caso as variáveis com esta parte dos arquivos forem iguais, copiar o arquivo de um dir para o outro.

Fiz a seguinte condição;


for ARQ in `ls *.tgz`
do
if [ $VAR1 == $VAR2 ]; then


Porem o erro que retorna é, se existe em um dir e nao existe no outro dir, ele nao move nada. Nem os arquivos que deveriam ser movidos.

Alguem teria alguma solução ?


  


2. Re: Condição para Mover Arquivos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/03/2013 - 10:48h

E aí acoscarelli, beleza?

Cara, não entendi bem o que você quer. Tá confuso.

O ambiente (diretórios e arquivos) você ja descreveu bem, mas o que você quer, acho que não foi tão claro. Esse comando na variável não vai dar em nada, não tem entrada para ele poder ser executado.
:/

Faz o seguinte, posta aí o script que vc fez e o que você quer exatamente. Com isso vai ficar melhor pra ajudar.

Flws.


3. Re: Condição para Mover Arquivos [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 15/03/2013 - 10:51h

pmartelotta escreveu:

E aí acoscarelli, beleza?

Cara, não entendi bem o que você quer. Tá confuso.

O ambiente (diretórios e arquivos) você ja descreveu bem, mas o que você quer, acho que não foi tão claro.
:/

Poderia explicar melhor?



Vamos la ..

A principio eu Preciso de uma condição que compare as duas variáveis.

Tipo ... Tenho dois arquivos em dois diretorios diferentes.

Dir_1/
Arquivo_X_Y_Z.tgz

Dir_2/
Arquivo_A_B_Z.tgz


As variaveis iria armazenadr o Z de ambos os arquivos. E a condição seria, caso fosse igual, mover o arquivo do DIR_1 para outro Diretorio ..

Tendeu ?

Tenho dois arquivos porem uma parte do NOME dele é qual vou comparar e não o arquivo todo.

Valeu pela força




4. Re: Condição para Mover Arquivos [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 15/03/2013 - 10:55h

acoscarelli escreveu:

pmartelotta escreveu:

E aí acoscarelli, beleza?

Cara, não entendi bem o que você quer. Tá confuso.

O ambiente (diretórios e arquivos) você ja descreveu bem, mas o que você quer, acho que não foi tão claro.
:/

Poderia explicar melhor?



Vamos la ..

A principio eu Preciso de uma condição que compare as duas variáveis.

Tipo ... Tenho dois arquivos em dois diretorios diferentes.

Dir_1/
Arquivo_X_Y_Z.tgz

Dir_2/
Arquivo_A_B_Z.tgz


As variaveis iria armazenadr o Z de ambos os arquivos. E a condição seria, caso fosse igual, mover o arquivo do DIR_1 para outro Diretorio ..

Tendeu ?

Tenho dois arquivos porem uma parte do NOME dele é qual vou comparar e não o arquivo todo.

Valeu pela força



Se é pra mover do diretório A pro diretório B, diretório B sendo o seu Dir_2, faz assim:

1) Antes de comparar as variáveis coloca a linha
 caminhodestino=$(ls segundo_arquivo)  

Isso vai armazenar o diretório onde o segundo arquivo está, que eu acredito que é pra onde você quer mover a bagaça. No then coloca antes de qualquer coisa um
 cd "$caminhodestino"  

Sacou?


5. Re: Condição para Mover Arquivos [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 15/03/2013 - 11:07h



Se é pra mover do diretório A pro diretório B, diretório B sendo o seu Dir_2, faz assim:

1) Antes de comparar as variáveis coloca a linha
 caminhodestino=$(ls segundo_arquivo)  

Isso vai armazenar o diretório onde o segundo arquivo está, que eu acredito que é pra onde você quer mover a bagaça. No then coloca antes de qualquer coisa um
 cd "$caminhodestino"  

Sacou?



sim sim .. mas acho que não ira solucionar o problema que tenho aqui.

explicando por cima. Tenho vários arquivos no dir_a e vários arquivos no dir_b.

os arquivos do dir_a não tem o mesmo nome do dir_b apenas partes do nome dos arquivos são iguais.

Precisava de um comando e uma condição que, caso essas partes forem iguais, mover o arquivo do dir_a para outro dir. Um dir_c por exemplo

Tendeu ?




6. Re: Condição para Mover Arquivos [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 15/03/2013 - 11:12h

acoscarelli escreveu:



Se é pra mover do diretório A pro diretório B, diretório B sendo o seu Dir_2, faz assim:

1) Antes de comparar as variáveis coloca a linha
 caminhodestino=$(ls segundo_arquivo)  

Isso vai armazenar o diretório onde o segundo arquivo está, que eu acredito que é pra onde você quer mover a bagaça. No then coloca antes de qualquer coisa um
 cd "$caminhodestino"  

Sacou?



sim sim .. mas acho que não ira solucionar o problema que tenho aqui.

explicando por cima. Tenho um vários arquivos no dir_a e vários arquivos no dir_b.

os arquivos do dir_a não tem o mesmo nome do dir_b apenas partes do nome do arquivo é igual.

Precisava de um comando e uma condição que, caso essa parte for igual, mover o arquivo do dir_a para outro dir. Um dir_c por exemplo

Tendeu ?



Entendi. Vamos supor que $var1 é o arquivo a ser movido. Após a linha que define o valor de $var1 acrescente
 diretorio_origem=$(ls "$var1")  

No then coloque assim:
 mv "$diretorio_origem""$var1" dir_c  

Agora eu não me lembro se a saída de ls "$var1" vai terminar com a /. Se não, altere a segunda linha para
 mv "$diretorio_origem"/"$var1" dir_c  


EDIT: a comparação, a princípio, você está a fazer corretamente, mas coloque as variáveis entre aspas. É o único erro que eu percebo na condição do if.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts