The UNIX and Linux Forums  


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
Validere XSL ark data i Unix datafil ravijunghare UNIX for Dummies Spørsmål og svar 1 11-07-2008 09:32
Trenger hjelp for Legge Tre nye kolonner i eksisterende filen fra fatching data fra fil Sandeep_Malik Shell programmering og Skripting 36 09-17-2008 06:12
Hente data fra en tekstfil basert på konfigurasjonen satt i konfigurasjonsfilen suparnbector Shell programmering og Skripting 3 08-10-2007 03:25
Innlegg Shell programmering: Spørsmål om kilden en fil og lese data fra filen ccwq Shell programmering og Skripting 3 08-04-2007 11:28
Bruke loop lese en fil, henter data fra databasen. Sonu4lov Shell programmering og Skripting 1 01-19-2007 03:38

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 12-03-2008
naughty21 naughty21 is offline
Registrert bruker
  
 

Bli Dato: juni 2008
Innlegg: 16
Hvordan få data fra en kode i XML fil

Hei
Jeg har en XML-fil i hvilke data som lastes fra en relasjonsdatabase tabellen og kolonnen er koder i XML-filen som er vist nedenfor.

<State> FNs </ State> <Zip/> <CompanyName/><EmailAddress>FDF@gmail.COM</ E-postadresse><PromoType> UKJENT </ PromoType> </ Promotion> </ PromotionList <State> FNs </ State> <Zip/> <CompanyName/><EmailAddress>zd4946@gmail.com</ E-postadresse>

hva jeg må gjøre er å sjekke data mellom kodene som er i fet skrift er gyldig eller ikke ... betyr å undersøke om det en e-postadresse eller ikke ... å kontrollere dette jeg trenger å vise data i mellom disse kodene.

og må finne lengden av data som ligger i mellom-koden ... betyr lengde FDF@gmail.COM

for jeg trenger å få data fra xml-fil hvor <EmailAddress> </ e-postadresse>-koden er tilstede.



beklager hvis det allerede spurt ... jeg sjekket, men jeg gjorde ikke få Exatly samsvarende resultat for min kravet

hjelp i dette ... Im gjør dette i korn shell

Sist endret av naughty21; 12-04-2008 på 01:51..
  #2 (permalink)  
Old 12-03-2008
Christoph Spohr Christoph Spohr is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 205
Hei,

Jeg vil prøve å hente e-post direkte. For meg fungerer med eksempler:

Code:
email=($(grep -o "[0-9A-Za-z]\+@[0-9A-Za-z]\+\.[A-Za-z]\{2,3\}" file))
Dette skriver alle mønstrene, og bare disse mønstrene, som samsvarer med regexp
i array epost.

Code:
echo ${#email[0]}
Vil gi deg lengden av det første elementet. Uten "#" det vil gi
du oppføringen i posisjon 0.

HTH Chris
  #3 (permalink)  
Old 12-03-2008
naughty21 naughty21 is offline
Registrert bruker
  
 

Bli Dato: juni 2008
Innlegg: 16
chris thanks for your reply


men
når im prøver med under en

Code:
email=($(grep -o "[0-9A-Za-z]\+@[0-9A-Za-z]\+\.[A-Za-z]\{2,3\}" 456))

im getting this error 

ksh: 0403-057 Syntax error: `(' is not expected.


når im prøver med under en
Code:
email=$(grep -o "[0-9A-Za-z]\+@[0-9A-Za-z]\+\.[A-Za-z]\{2,3\}" 456)

im getting error like this 

grep: Not a recognized flag: o
Usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] -e pattern_list...
        [-f pattern_file...] [file...]
Usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] [-e pattern_list...]
        -f pattern_file... [file...]
Usage: grep [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] pattern_list [file...]
andre sggestions
  #4 (permalink)  
Old 12-03-2008
Christoph Spohr Christoph Spohr is offline
Registrert bruker
  
 

Bli Dato: Sep 2008
Innlegg: 205
Ingen overraskelse, du bruker ksh. Denne løsningen fungerer bare i bash eller zsh.
Med ksh Jeg kan ikke hjelpe deg. Men dette skal være enkelt. Just google for arrays
i ksh. $(...) Kjøre følgende kommando i en subshell. (...) Setter
det inne i en matrise. Kanskje du kan erstatte (...) ved
`...` (Backticks). Men jeg vet ikke.

Trolig må du justere regexp også. Nå blir det ikke
samsvarer eposter med punktum, understreking tankestrekene etc.
  #5 (permalink)  
Old 12-03-2008
naughty21 naughty21 is offline
Registrert bruker
  
 

Bli Dato: juni 2008
Innlegg: 16
Sitat:
Originally Posted by Christoph Spohr View Post
Ingen overraskelse, du bruker ksh. Denne løsningen fungerer bare i bash eller zsh.
Med ksh Jeg kan ikke hjelpe deg. Men dette skal være enkelt. Just google for arrays
i ksh. $(...) Kjøre følgende kommando i en subshell. (...) Setter
det inne i en matrise. Kanskje du kan erstatte (...) ved
`...` (Backticks). Men jeg vet ikke.

Trolig må du justere regexp også. Nå blir det ikke
samsvarer eposter med punktum, understreking tankestrekene etc.
Jeg fikk svar, men arbeider med 1ste forekomst av koden bare

Code:
awk -F '</?EmailAddress>' '{print $2}' 456.xml
men jeg trenger flere ganger .... betyr at e-postadressen koden finnes flere ganger i filen ...
så må sjekke hele xml-fil på e-postadresse og få dem dit <EmailAddress> </ e-postadresse>-koden er tilstede.

Sist endret av naughty21; 12-03-2008 på 05:07..
  #6 (permalink)  
Old 12-04-2008
samshaw samshaw is offline
Registrert bruker
  
 

Bli Dato: desember 2008
Innlegg: 16
Re: skriver verdier av XML-koder i arrays

Hei Alle,

Håper alt er bra. Jeg bruker Bourne Shell (sh). Jeg har denne enkle XML-struktur (det er meget godt definert, og dette er hvordan dette fast struktur vil være). Den nøyaktige prøven er som følger (Det vil alltid være en verdi per tag):

<Users>
<host>
<hostAddress> 180.144.226.47 </ hostAddress>
<brukernavn> pwdfe </ brukernavn>
<password> hjitre </ passord>
<instanceCount> 2 </ instanceCount>
</ Host>
<host>
<hostAddress> 180.144.226.87 </ hostAddress>
<brukernavn> trrrer </ brukernavn>
<password> jhjjhhj </ passord>
<instanceCount> 3 </ instanceCount>
</ Host>
<host>
<hostAddress> 180.455.226.87 </ hostAddress>
<brukernavn> wewqw </ brukernavn>
<password> dfsdfd </ passord>
<instanceCount> 3 </ instanceCount>
</ Host>
</ Users>
-------------------------------------------------- --------------------

Jeg ønsker å opprette en matrise med verdiene i XML-koder. For eksempel H_ARRAY ('180 .144.226.47 ','180 .144.226.87','180 .144.226.87 '). Så jeg vil gå gjennom mente verdiene for matrisen tilsvarende. Jeg er nybegynner til shell scripting og spesielt "SED"Kommandoen som etter gjentatte forsøk ikke kunne forstå. Ville takker for hjelpen. La meg vite om jeg tapte på noe,


H_ARRAY \u003d ( `echo $ (hostAddress)`)
U_ARRAY \u003d ( `echo $ (brukernavn)`)
P_ARRAY \u003d ( `echo $ (passord)`)
I_ARRAY \u003d ( `echo $ (instanceCount)`)

Takk,
Sam
  #7 (permalink)  
Old 12-04-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - studenten
  
 

Bli Date: Feb 2007
Sted: Singapore / Bangalore / Cochin
Innlegg: 607
Prøv dette rask approch:
Code:
sed 's/>/\n>/g' filename | sed 's/>\([A-Za-z0-9]*@[A-Za-z0-9]*\.[A-Za-z0-9]*\)<.*/\1/' | sed '/@/!d'
Closed Thread

Hugseliste

Tags
data, søke, shell script, shell scripting, tag, unix scripting, UNIX scripting Grunnleggende, xml

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 02:22.


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