The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Distribuzione Linux da script bash Samtim74 Shell scripting e di programmazione 1 08-19-2008 03:04 AM
Perl codice numerico per differenziare e non-numerici di ingresso Raynon Shell scripting e di programmazione 11 08-04-2007 11:32 AM
come ordinare sul campo numerico tempo rahulspatil_111 Shell scripting e di programmazione 1 04-27-2007 12:52 PM
Ordina (comando bash) booboo Shell scripting e di programmazione 5 03-31-2006 08:18 PM
Numerico in virgola mobile comparazioni in bash borncrazy Shell scripting e di programmazione 2 03-27-2005 08: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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-27-2008
dlm1065 dlm1065 is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 1
newb aiutare a linux e script bash necessità numerico sorta

Sto cercando di impostare automaticamente l'importazione di una serie di file di database mysql. Che sto facendo ora manualmente e la sua reale dolore.

Tutti i file sono sql numerati in un formato di 4 numeri di sottolineatura testo con spazi sostituito dal sottolineatura.

esempio:
Citazione:
logon_updates/2334_third_file.sql
logon_updates/1234_first_file.sql
logon_updates/1345_second_file.sql
Ci sono 3 banche dati di ogni impostazione nello stesso modo. La directory principale è la struttura del database di file superiore sequenza sostituzione inferiore sequenza. Ciascuno ha il proprio database sottodirectory con sequenziato aggiornamenti dei file con i numeri più alti rispetto alla struttura dei file devono essere caricati in sequenza numerica. Ci sono due esemplari numeri di sequenza di aggiornamento in tutte le directory sono quelle di essere caricato prima che il prossimo numero.

I figured questo che posso fare per ottenere la corretta struttura di file in quanto non hanno duplicato i numeri.

Citazione:
lista \u003d $ (find-name "* logon_structure.sql"-stampa)
per f in $ lista;
fare
g \u003d $ (echo $ f | cut-b3-6)
if [$ g-ge $ LNUM], quindi
LNUM \u003d $ g
fi
fatto
Ho provato il codice sottostante per liberarsi di il nome della directory con taglio, ma sono sbagliato, sono in ordine alfabetico non numerico.
La variabile h ha solo il numero e g è l'intero nome del file.
Citazione:
lista \u003d $ (find logon_updates-name "*. sql"-stampa)
per f in $ lista;
fare
g \u003d $ (echo $ f | cut-b15-255)
h \u003d $ (echo $ f | cut-b15-18)
if [$ h-gt $ LNUM], quindi
echo $ g
fi

fatto
Mi manca un sacco di conoscenze di base sotto linux che ho avuto in un ambiente DOS / Windows ambiente.

Sono stato a guardare il codice così a lungo non riesco a vedere la foresta di alberi, se sai cosa voglio dire. Quindi, eventuali suggerimenti per ottenere il diritto su treno di pensiero sarebbe molto apprezzato

Grazie,
dlm1065

Ultimo a cura di dlm1065; al 04/27/2008 04:36 AM..
  #2 (permalink)  
Old 04-27-2008
epoca era is offline Forum Advisor  
Herder di Inutile Gatti (Su sabbatico)
  
 

Iscriviti Data: marzo 2008
Ubicazione: / ci / è / solo / bin / sh
Interventi: 3.652
Se si utilizza l'uscita da trovare una volta, non si ha realmente bisogno per metterla in una variabile.

Il mio suggerimento sarebbe quello di estrarre il numero progressivo e la banca dati per separare i campi, e sul tipo numerico, il numero progressivo.


Codice:
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

Una volta che siete sicuri che questo funziona correttamente (non ho i dati di prova su), è possibile continuare la conduttura:


Codice:
... sort -t : -k1n |
cut -d: -f2- |
while read f; do
  sql PERFORM ACTS OF horror WITH "$f" USING BIG STICK
done

Se l'output da trovare è abbastanza regolare, probabilmente si potrebbero trovare alcune opzioni intelligenti che permettono di passare direttamente che per ordinare senza mentre look. Forse passare l'output di trovare attraverso sed temporaneamente regolarizzare questo?

Forse qualcosa di simile a questo lavoro sarebbe già?


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


Ultimo a cura di epoca; al 04/27/2008 05:17 AM.. Motivo: Oops, ordina-t (non-d!)
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 06:01 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0