Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

1. Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

Alex Douglas
adsjcsp

(usa Debian)

Enviado em 28/09/2010 - 13:20h

Boa tarde galera, depois de muito tempo me mantando, dei o braço a torcer.... Pois bem estou com uma arquivos que possui uma listagem com váaaaaaaaaarios nome de arquivo, exemplo:

estou usando este comando para visualizar a lista até ai tudo bem,

root@srv-proxy:/desenvolvimento# cut -f 9 -d " " loja01

13100504628426000145550010000477976326800636.xml
13100804628426000145550010000657396782108516.xml
25100792357250000444550010000003970893726407.xml
25100792357250000444550010000004150934248008.xml
32100611640520000185550010000003034778065665.xml
33100604692027000496550040000644291418300405.xml
33100604692027000496550040000656508008276870.xml
33100704692027000496550040000845322254038533.xml
33100704692027000496550040000848303971973744.xml
33100704692027000496550040000994398280710449.xml
33100704692027000496550040000997709675410310.xml

o que eu quero é que com o comando cp eu possa copiar os arquivos reais que estão nesta lista para um determinado diretório.

Alguém pode me ajudar????


  


2. Re: Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 28/09/2010 - 14:36h

Tenta assim

cut -f 9 -d " " loja01 | while read i
do
cp $i <destino>
done


3. Re: Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

igor
igorbsp

(usa Slackware)

Enviado em 28/09/2010 - 15:03h

esses arquivos estão na mesma pasta que as contém?


4. continuação...

Alex Douglas
adsjcsp

(usa Debian)

Enviado em 28/09/2010 - 15:42h

Então a copia deu certo, muito obrigado, agora estou tentando criar diretórios da mesma forma que vocês me ensinaram e está saindo com ? no final do nome da pasta, alguém pode me quebrar mais esse????

então o codigo que estou usando para criar os diretórios que estão dentro de uma lista em um arquivo é este:

PathDir=/desenvolvimento
CnpjLoja=`cut -f 1 /desenvolvimento/cnpjlojas`
DirCnpj=$PAthDir/$CnpjLoja

if [ -e $DirCnpj ]
then

echo "O Diretório já existe"


else

echo "O diretório não existe, Criando diretórios........"
mkdir 'grep -qs '$PAthDir/$CnpjLoja
fi

só que quando vou no shell verificar ele fez todos os diretório que eu quero só que com um ponto de ? no fim, e eu não estou sabendo como retirar.


5. Re: Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 29/09/2010 - 19:04h

Cara eu num entendi muito bem o que vc tava tentando fazer ... mas se eu estiver cero .... seu script deveria ser algo assim:

PathDir=/desenvolvimento

cut -f 1 /desenvolvimento/cnpjlojas | while read CnpjLoja
do
DirCnpj=$PathDir/$CnpjLoja
if [ -e $DirCnpj ]
then
echo "O Diretório $DirCnpj já existe"
else
echo "O diretório $DirCnpj não existe, Criando diretório........"
mkdir $PathDir/$CnpjLoja
fi

done



6. Re: Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/10/2010 - 18:28h

Se não me engano: o teste correto para verificar a existência de um diretorio é
-d

Recomendo que seja usada uma lógica como a que segue:
Coloque dentro de um for sua pesquisa. Assim:

for diretorio in $( cut -d ' ' -f 9 loja01 | cut -d '.' -f 1 ); do

if [ -d diretorio ]; then
...
else
...
fi

done

cut -d ' ' -f 9 loja01 | cut -d '.' -f 1
O trecho que adicionei serve para não colocar o .xml no nome do diretorio.

De uma forma mais organizada poderias fazer uso de funções.

#!/bin/sh
# more http://sekysu.blogspot.com

_getCnpj()
{
# Pega o cnpj
cut -d ' ' -f 9 loja01 | cut -d '.' -f 1
}

_makeDir()
{
echo -e "O diretorio $1 não existe.\n Criando o diretorio $1"
mkdir $1 && echo "O diretorio $1 foi criado com sucsso" || echo "Não foi possivel criar o diretório $1"
}

_dirExists()
{
echo "O diretorio $1 já existe.\n Então não será criado"
}

for DIR in $( _getCnpj ); do

if [ ! -d $DIR ]; then
_makeDir $DIR
else
_dirExists $DIR
fi

done

exit

È mais ou menos isso. Organize suas ideias, sempre e divida a solução de um problema em partes.
Visualize os passos para a solução e encapule-os em funções com nomes sugestivos.

Você vai me agradcer só depois... :P



7. Agradecimentos...

Alex Douglas
adsjcsp

(usa Debian)

Enviado em 04/10/2010 - 02:47h

Já estou agradecendo a todos pela colaboração. Muito obrigado mesmo, ,sobre ordenar o pensamento está correto sou muito afoito e acabo atropelando o processo.


8. Re: Comiar uma lista que esté dentro dse um arquivo. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2010 - 06:25h

Sua maneira de escrever denunciou-me um certo nevorsismo. Mas foi só chute como em "dse" ("d", "s" e "e" são teclas próximas). Quando estou muito afoito também cometo estes erros de digitação com este efeito.

Mas poderia ser apenas falha momentanea de coodernação motora gerada por fatores do tipo falta de sono e/ou café em ecesso, ressaca ( como os que estou passando agora )... Enfim foi chute...







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts