The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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
Sök ersätta strängen i fil1 med string från (uppslagstabell) fil2? gstuart Shell-programmering och Skript 9 06-08-2009 07:11
Söksträngen sam99 Shell-programmering och Skript 4 03-04-2008 01:39
SED Söksträngen Hjälp prash184u Shell-programmering och Skript 2 01-23-2008 01:57
ersätta en sträng melanie_pfefer Shell-programmering och Skript 11 01-17-2008 10:57
Ersätt strängen B beroende på förekomst av strängen A hemangjani Shell-programmering och Skript 1 12-05-2006 05:10

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 04-08-2008
chiru_h chiru_h is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 72
Söksträngen i XML med sed

Hälsningar,
Jag har en XML: file.xml
Kod:
<component>
       <name>abcd</name>
       <value>1234</value>
</component>
Jag använder sed att ersätta abcd med önskat värde dynamiskt utan att veta det verkliga värdet.
Kod:
sed 's/<name>[-[:alnum:]./]\{1,\}<\/name>/<name>ijkl<\/name>/' file.xml > newfile.xml
Jag har inga problem med detta kommando i Linux men på Solaris-maskin, jag får felmeddelandet:
Citat:
sed: kommandot förvrängda: / <name> [- [: alnum :]./] \ (1, \) <\ / namn> / <name> ijkl <\ / name> /
Om jag tar bort >[-[: alnum :]./] \ (1, \) och sätter det verkliga värdet, det är bra. Men jag måste göra det dynamiskt som jag använder det i manus att ersätta den nuvarande värde med tanke på värdet.

Kan någon vänligen ge råd.

Tack,
Chiru

Senast redigerad av Yogesh Sawant; 04-08-2008 vid 02:45.. Orsak: lagt till kod taggar
  #2 (permalänk)  
Old 04-08-2008
reborg's Avatar
reborg reborg is offline Forum Staff  
Administratör
  
 

Join Date: mars 2005
Ort: Irland
Inlägg: 4.233
Jag är förvånad över att det fungerar överallt, kommandot förvrängd i minst ett sätt. Det finns 4 / tecken i ditt uttryck.

Jag är inte på en Solaris-rutan just nu, men jag är ganska säker på Solaris sed stöder inte [::] format uttryck, så att du skulle få mer förändring från något liknande:

Kod:
sed 's#<name>\([^<][^<]*\)</name>#<name>SOMETHING</name>#' file.xml
  #3 (permalänk)  
Old 04-08-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: februari 2007
Inlägg: 4.313
Om du byter hela linjen detta bör räcka:

Kod:
sed 's#<name>.*#<name>SOMETHING</name>#' file.xml
Hälsningar
  #4 (permalänk)  
Old 04-08-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2.540
bör du använda ett verktyg speciellt för analys av XML, inte sed. (även om det fortfarande kan göras)
  #5 (permalänk)  
Old 04-09-2008
chiru_h chiru_h is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 72
Tack Reborg / Franklin..both av dem att fungera, men jag använder Reborg är som den andra håller på att förändras i en del andra ställen där jag inte behöver.

Vad kommer att vara det enklaste sättet att XML-analys - i den bemärkelsen att jag kan använda som en del av tanken script jag har som gör flera andra uppgifter också.

Tack,
Chiru
  #6 (permalänk)  
Old 04-09-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Det minst smärtsamma sättet beror på dina övriga krav. Om filen är enkel då enkla linje-oriented skal verktyg du är bekant med vanligtvis räcker. Om du behöver göra någonting som kräver någon verklig förståelse för XML strukturer (kapsling, syskon och liknande förhållanden, villkor etc.) så är det förmodligen klokt att få åtminstone några inledande förtrogenhet med vissa korrekt XML-verktyg. Det finns flera formalisms att välja mellan och många verktyg som genomför dem, personligen har jag haft möjlighet att få saker gjorda med xsltproc efter den första chocken av att försöka förstå vad som flög i huvudet på de människor som kom med specifikationerna för detta.
Closed Thread

Komihåglista

Taggar
linux, Solaris

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 05:16.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0