The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Distro Linux a partir de script bash Samtim74 Programação Shell Script e 1 08-19-2008 03:04
Código Perl para diferenciar numéricos e não numéricos entrada Raynon Programação Shell Script e 11 08-04-2007 11:32
a forma de classificar no campo numérico tempo rahulspatil_111 Programação Shell Script e 1 04-27-2007 12:52
Classifique (bash comando) booboo Programação Shell Script e 5 03-31-2006 08:18
Ponto flutuante comparações numéricas em bash borncrazy Programação Shell Script e 2 03-27-2005 08:39

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-27-2008
dlm1065 dlm1065 is offline
Usuário
  
 

Join Date: Apr 2008
Posts: 1
ajudar newb no linux e necessidade bash script tipo numérico

Estou tentando configurar automaticamente a importação de uma série de arquivos de dados mysql. Estou fazendo manualmente agora um real e sua dor.

Todos os sql são numeradas sequencialmente em um formato de 4 números sublinhado substituído pelo texto com espaços sublinhados.

exemplo:
Citação:
logon_updates/2334_third_file.sql
logon_updates/1234_first_file.sql
logon_updates/1345_second_file.sql
Existem 3 dados cada configuração da mesma forma. O diretório principal tem o banco de dados estrutura arquivo maior seqüência substitui menor seqüência. Cada banco tem seu próprio subdiretório com seqüenciado atualizações os arquivos com os números mais elevados do que os estruturado arquivos precisam ser carregados em seqüência numérica. Existem números em seqüência duplicar a atualização todos os diretórios têm que ser carregado antes que o próximo número.

Eu percebi que eu possa fazer isso para conquistar a boa estrutura arquivo como eles não têm números duplicados.

Citação:
lista \u003d $ (find-name "* logon_structure.sql"-print)
for f in $ lista;
fazer
g \u003d $ (echo $ f | cut-b3-6)
if [$ g-ge $ lnum]; então
lnum \u003d $ g
fi
feito
Tentei o código abaixo se livrar do diretório com o nome cortado, mas eles são na ordem errada, eles estão em ordem alfabética não numéricos.
A variável h tem o número g sozinho e tem o nome de arquivo completo.
Citação:
list \u003d $ (logon_updates encontrar-name "*. sql"-print)
for f in $ lista;
fazer
g \u003d $ (echo $ f | cut-B15-255)
h \u003d $ (echo $ f | cut-B15-18)
if [$ h-gt $ lnum]; então
echo $ g
fi

feito
Me falta uma grande quantidade de conhecimentos básicos em Linux que eu tinha em um DOS / Windows ambiente.

Tenho estado a olhar para este código muito tempo eu não consigo ver a floresta para as árvores, se você sabe o que quero dizer. Então, alguma sugestão para me formar à direita de pensamento seria muito apreciada

Obrigado,
dlm1065

Última edição por dlm1065; em 04/27/2008 04:36..
  #2 (permalink)  
Old 04-27-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Se você usar somente a saída de encontrar uma vez, você realmente não precisa colocá-lo em uma variável.

A minha sugestão seria a de extrato, o número sequencial e do banco de dados para campos separados e, numericamente, em espécie, o número sequencial.

Código:
find logon_updates -name "*.sql" -print |
while read f
do
  g=$(echo $f | cut -b15-)
  h=$(echo $f | cut -b15-18)
  echo $h:$g
done | 
sort -t : -k1n
Uma vez que você está confiante de que este funciona correctamente (não tenho os dados de ensaio sobre), pode continuar o gasoduto:

Código:
... sort -t : -k1n |
cut -d: -f2- |
while read f; do
  sql PERFORM ACTS OF horror WITH "$f" USING BIG STICK
done
Se a saída de encontrar é bastante regular, provavelmente você poderá encontrar algumas opções inteligente que lhe permitem passar diretamente para a espécie, sem olhar o tempo. Talvez passe a saída de encontrar, através sed temporariamente para regularizar isso?

Talvez algo como isso poderia funcionar já?

Código:
find -name "*logon_structure.sql" -print |
sort -t / -k2n

Última edição por época; em 04/27/2008 05:17.. Motivo: Opa, sort-t (não-d!)
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 01:02.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0