![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Utvärdera XSL sheet data i Unix Dataformat | ravijunghare | UNIX for Dummies Frågor & Svar | 1 | 11-07-2008 09:32 |
| Behöver du hjälp för att lägga till tre nya kolumner i befintlig fil från fatching data från fil | Sandeep_Malik | Shell-programmering och Skript | 36 | 09-17-2008 06:12 |
| Extrahera data från textfil som grundar sig på konfiguration anges i konfigureringsfil | suparnbector | Shell-programmering och Skript | 3 | 08-10-2007 03:25 |
| Post Shell programmering: Fråga om källan en fil och läsa data från filen | ccwq | Shell-programmering och Skript | 3 | 08-04-2007 11:28 |
| Använda loop läsa en fil att hämta data från databasen. | Sonu4lov | Shell-programmering och Skript | 1 | 01-19-2007 03:38 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Hur får man data från en tagg i XML-fil
Hej
Jag har en XML-fil där data hämtas från en relationsdatabas tabellen och kolumnen namn taggarna i xml-fil som visas nedan. <State> FN </ staten> <Zip/> <CompanyName/><EmailAddress>FDF@gmail.COM</ Epostadress><PromoType> OKÄND </ PromoType> </ Befordran> </ PromotionList <State> FN </ staten> <Zip/> <CompanyName/><EmailAddress>zd4946@gmail.com</ Epostadress> vad jag behöver göra är att kontrollera om uppgifterna i mellan taggarna som är i fetstil är giltigt eller inte ... innebär att kontrollera om det är en e-postadress eller inte ... att kontrollera detta behöver jag för att visa informationen i mellan dessa taggar. och måste finna längden på den data som ligger i mellan taggen ... betyder längd FDF@gmail.COM för detta behöver jag för att få data från xml-fil där <EmailAddress> </ Epostadress> taggen är närvarande. Förlåt om det redan bett ... Jag kollade men jag gjorde få Exatly matchande resultat för mina krav någon hjälp i det här ... Im detta i Korn shell Senast redigerad av naughty21; 12-04-2008 vid 01:51.. |
|
||||
|
Hej, Jag skulle försöka extrahera e-post direkt. För mig är det här fungerar med ditt urval: Kod:
email=($(grep -o "[0-9A-Za-z]\+@[0-9A-Za-z]\+\.[A-Za-z]\{2,3\}" file))
Detta skriver alla mönster, och endast dessa mönster, som matchar de regexp i kedjan email. Kod:
echo ${#email[0]}
Ger dig längden på den första delen. Utan "#" det kommer att ge du posten i position 0. HTH Chris |
|
||||
|
chris tack för ditt svar men när im försökt med under ett Kod:
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 försökt med under ett Kod:
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...]
någon annan sggestions |
|
||||
|
Ingen överraskning du använder ksh. Denna lösning fungerar bara i bash eller zsh.
Med ksh Jag kan inte hjälpa dig. Men det ska vara enkelt. Just google för Arrays i ksh. $(...) Köra följande kommando i en subshell. (...) Sätter saker inne i en matris. Kanske du kan ersätta (...) av `...` (Backticks). Men jag vet inte. Förmodligen kommer du att behöva justera regexp också. Nu kommer det inte Match mail med prickar, understreck, bindestreck etc. |
|
||||
|
Citat:
Kod:
awk -F '</?EmailAddress>' '{print $2}' 456.xml
men jag behöver flera gånger .... innebär e-postadress taggen finns flera gånger i filen ... så behovet av att kontrollera hela xml-fil till e-postadress och få dem varhelst <EmailAddress> </ Epostadress> taggen är närvarande. Senast redigerad av naughty21; 12-03-2008 vid 05:07.. |
|
||||
|
Re: skriva värden i XML-taggar i kedjor
Hej Alla,
Hoppas allt är bra. Jag använder Bourne Shell (sh). Jag har denna enkla XML-struktur (det är väl definierade och det är hur detta fasta strukturen kommer att vara). Den exakta provet enligt följande (Det kommer alltid att finnas ett värde per tag): <Users> <host> <hostAddress> 180.144.226.47 </ hostAddress> <användarnamn> pwdfe </ username> <lösenord> hjitre </ password> <instanceCount> 2 </ instanceCount> </ Host> <host> <hostAddress> 180.144.226.87 </ hostAddress> <användarnamn> trrrer </ username> <lösenord> jhjjhhj </ password> <instanceCount> 3 </ instanceCount> </ Host> <host> <hostAddress> 180.455.226.87 </ hostAddress> <användarnamn> wewqw </ username> <lösenord> dfsdfd </ password> <instanceCount> 3 </ instanceCount> </ Host> </ Användare> -------------------------------------------------- -------------------- Nu vill jag skapa en matris med endast de värden i XML-taggar. För t.ex. H_ARRAY (180 .144.226.47 "," 180 .144.226.87 "," 180 .144.226.87 '). Då jag går igenom trodde värdena array därefter. Jag är nybörjare till Shell scripting och speciellt "SED"Kommando som efter upprepade försök inte kunde förstå. Skulle uppskatta din hjälp. Låt mig veta om jag missat något, H_ARRAY \u003d ( `echo $ (hostAddress)) U_ARRAY \u003d ( `echo $ (användarnamn)") P_ARRAY \u003d ( `echo $ (lösenord)") I_ARRAY \u003d ( `echo $ (instanceCount)) Tack, Sam |
![]() |
| Komihåglista |
| Taggar |
| data, söka, shell script, shell scripting, tagg, UNIX-skript, UNIX scripting basics, xml |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|