The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Distribution Linux à partir de script bash Samtim74 De programmation et de script Shell 1 08-19-2008 02:04 AM
Perl code numérique de différencier et de non-entrée numérique Raynon De programmation et de script Shell 11 08-04-2007 10:32 AM
la façon de trier sur le terrain numérique du temps rahulspatil_111 De programmation et de script Shell 1 04-27-2007 11:52 AM
Sort (bash commande) Booboo De programmation et de script Shell 5 03-31-2006 07:18 PM
Floating point numérique comparaisons en bash borncrazy De programmation et de script Shell 2 03-27-2005 07:39 PM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-27-2008
dlm1065 dlm1065 is offline
Registered User
  
 

Date d'inscription: avril 2008
Messages: 1
NEWB aider à linux et numérique script bash besoin de tri

J'essaie de configurer automatiquement à l'importation d'une série de fichiers de base de données mysql. Je suis en train de faire maintenant manuellement royal et ses douleurs.

Tous les fichiers sql sont numérotés dans l'ordre dans un format de 4 chiffres soulignent le texte avec des espaces remplacés par des soulignés.

exemple:
Citation:
logon_updates/2334_third_file.sql
logon_updates/1234_first_file.sql
logon_updates/1345_second_file.sql
Il existe 3 bases de données de chaque installation de la même façon. Le répertoire principal est la structure de base de données de fichier supérieur séquence inférieure remplaçant séquence. Chaque base de données a son propre sous-répertoire avec les fichiers de séquence des mises à jour avec des chiffres plus élevés que la structure des fichiers doivent être chargés en séquence numérique. Il ya des doublons dans les numéros de séquence de mise à jour tous ces répertoires doivent être chargées avant le prochain numéro.

Je me suis-je peut le faire pour gagner la bonne structure de fichiers, car ils n'ont pas les numéros en double.

Citation:
list \u003d $ (find-name "* logon_structure.sql"-print)
for f in $ list;
faire
g \u003d $ (echo $ f | cut-b3-6)
if [$ g-ge $ lnum], puis
lnum \u003d $ g
fi
fait
J'ai essayé le code ci-dessous se débarrasser du nom de répertoire avec le couper, mais ils sont dans le bon ordre, ils sont dans l'ordre alphabétique pas numérique.
La variable h est le nombre et g a à elle seule la totalité de nom de fichier.
Citation:
list \u003d $ (find logon_updates-name "*. sql"-print)
for f in $ list;
faire
g \u003d $ (echo $ f | cut-b15-255)
h \u003d $ (echo $ f | cut-b15-18)
if [$ h-gt $ lnum], puis
echo $ g
fi

fait
Je manque beaucoup de connaissances de base sous Linux, que j'ai eu dans un dos / windows environnement.

J'ai été à la recherche de ce code si longtemps je ne peux pas voir la forêt pour les arbres, si vous savez ce que je veux dire. Ainsi, des suggestions à me former sur le droit de la pensée serait grandement appréciée

Merci,
dlm1065

Dernière édition par dlm1065; au 04.27.2008 03:36 AM..
  #2 (permalink)  
Old 04-27-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
Si vous utilisez uniquement la sortie de trouver une fois, vous n'avez pas vraiment besoin de les mettre dans une variable.

Ma suggestion serait d'extraire le numéro d'ordre et de la base de données pour séparer les champs, et le tri numérique sur le numéro de séquence.

Code:
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
Une fois que vous êtes sûr que tout fonctionne correctement (je n'ai pas les données de test sur le), vous pouvez poursuivre la préparation:

Code:
... sort -t : -k1n |
cut -d: -f2- |
while read f; do
  sql PERFORM ACTS OF horror WITH "$f" USING BIG STICK
done
Si la sortie est de trouver assez régulière, sans doute, vous pouvez trouver des options intelligent qui vous permettra de passer directement à trier le tout sans regarder. Peut-être passer la sortie de trouver par le biais de sed à régulariser temporairement il?

Peut-être quelque chose comme cela déjà?

Code:
find -name "*logon_structure.sql" -print |
sort -t / -k2n

Dernière édition par époque au 04.27.2008 04:17 AM.. Motif: Oops, sort-t (-d pas!)
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 05:20 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0