The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Linux distro fra bash script Samtim74 Shell programmering og Skripting 1 08-19-2008 02:04
Perl-kode for å skille mellom numerisk og ikke-numeriske skriving Raynon Shell programmering og Skripting 11 08-04-2007 10:32
hvordan numeriske sortere på feltet tid rahulspatil_111 Shell programmering og Skripting 1 04-27-2007 11:52
Sorter (bash kommandoen) booboo Shell programmering og Skripting 5 03-31-2006 07:18
Floating Point numerisk comparisions i bash borncrazy Shell programmering og Skripting 2 03-27-2005 07: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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 04-27-2008
dlm1065 dlm1065 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 1
hjelpe newb på linux og bash må numerisk script sortere

Jeg prøver å sette opp automatisk importere en rekke mysql databasefiler. Jeg gjør manuelt nå og et kongelig smerte.

Alle sql filer sekvensielt nummerert i et format av 4 tall underbygger teksten med mellomrom erstattes av understreking.

eksempel:
Sitat:
logon_updates/2334_third_file.sql
logon_updates/1234_first_file.sql
logon_updates/1345_second_file.sql
Det er 3 databaser hvert oppsett på samme måte. Hovedformålet katalogen har databasen strukturen fil høyere sekvens erstatte lavere sekvens. Hver database har sin egen underkatalog med sequenced oppdaterer filer med høyere enn den strukturerte filer må lastes inn i nummerorden sequenced. Det er duplisert sekvens i oppdateringen kataloger de alle må være lastet før neste nummer.

Jeg skjønte jeg kan gjøre dette for å få riktig struktur filen som de ikke har Duplikatene.

Sitat:
listen \u003d $ (Finn-name "* logon_structure.sql"-print)
for f in $ listen;
gjøre
g \u003d $ (echo $ f | cut-B3-6)
hvis [$ g-ge $ lnum]; deretter
lnum \u003d $ g
fi
ferdig
Jeg prøvde det under kode bli kvitt den katalognavn med kutt, men de er i feil rekkefølge, de er i alfabetisk ikke numerisk rekkefølge.
Variabelen t har nummeret alene og g har hele filnavnet.
Sitat:
listen \u003d $ (finne logon_updates-name "*. sql"-print)
for f in $ listen;
gjøre
g \u003d $ (echo $ f | cut-b15-255)
h \u003d $ (echo $ f | cut-b15-18)
hvis [$ h-gt $ lnum]; deretter
echo $ g
fi

ferdig
Jeg mangler en rekke grunnleggende kunnskaper under linux at jeg hadde en dos / windows miljø.

Jeg har vært å se på denne koden så lenge jeg kan ikke se skogen for trær, hvis du vet hva jeg mener. Så noen forslag å komme meg på rett tog tankefridom ville bli verdsatt

Takk,
dlm1065

Sist endret av dlm1065; 04-27-2008 på 03:36..
  #2 (permalink)  
Old 04-27-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Hvis du bare bruker utdataene fra finner en gang, trenger du ikke trenger å putte den i en variabel.

Mitt forslag vil være å hente sekvensnummer og databasen til separate felt, og sortere tallmessig på sekvensnummer.

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
Når du er sikker på at dette fungerer riktig (jeg har ikke data for å teste på), kan du fortsette røret:

Code:
... sort -t : -k1n |
cut -d: -f2- |
while read f; do
  sql PERFORM ACTS OF horror WITH "$f" USING BIG STICK
done
Hvis utdataene fra funnet er ganske vanlige, sannsynligvis du kunne finne noen smarte valg som lar deg pass som direkte å sortere uten mens titt. Kanskje passerer output fra finne gjennom sed midlertidig regularize det?

Kanskje noe sånt som dette ville fungere allerede?

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

Sist endret av æra; 04-27-2008 på 04:17.. Grunn: Oops, sort-t (ikke-d!)
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 12:10.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0