help xml - A UNIX és Linux Forums
The UNIX and Linux Forums  
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 10-06-2008
uwork72 uwork72 is offline
Regisztrált felhasználó
  
 

Join Date: Aug 2008
Hozzászólások: 32
help xml

Képviselőcsoport nevében,

Kód:
$ cat 2233
12236 ID2
12239 ID3

Please guide me to construct the following XML from the above input.


<Comp>
        <main>
                <hlp fS="12236" eS="12237">
                        <std no="2233" />
                        <id="ID2"/>
                </hlp>
                <hlp fS="12239" eS="12240">
                        <std no="2233" />
                        <id="ID3"/>
                </hlp>
        </main>
</Comp>

** eS is +1 of fS value
** std no is the file name
  #2 (permalink)  
Old 10-07-2008
era era is offline Forum Advisor  
Herder a Mihaszna Cicák (A szombati)
  
 

Join Date: Mar 2008
Helyszín: / ott / is / csak a / bin / sh
Hozzászólások: 3652
Mit próbált, mely részek érzed a kérdéseket? Van-e inkább a végrehajtására nyelvet?

(Hát nem egy tad hülye, hogy egy mező értékét, amely mindig egy mező értékét, plusz egy?)
  #3 (permalink)  
Old 10-07-2008
summer_cherry summer_cherry is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jun 2007
Helyszín: Kína Peking
Hozzászólások: 1.082
perl

hi próbáld alatt perl script
mondjuk a szkript neve a.pl az alábbi parancsot fordulhatnak meg a problémát.

Idézet:
perl a.pl 2233

Kód:
format STDOUT_TOP =
<Comp>
        <main>
.
format STDOUT =
		<hlp fs="@<<<<" es="@<<<<">
		$text1     $text2  
			<std no="@<<<"/>
			$text3
			<id="@<<"/>
			$text4
		</hlp>
.
$file=shift;
open(FH,"<$file") or die "Can not open file";
while(<FH>){
	@arr=split(" ",$_);
	$text1=$arr[0];
	$text2=$arr[0]+1;
	$text3=$file;
	$text4=$arr[1];
	write;
}
print "        </main>\n";
print "</Comp>\n";
close(FH);
  #4 (permalink)  
Old 10-07-2008
uwork72 uwork72 is offline
Regisztrált felhasználó
  
 

Join Date: Aug 2008
Hozzászólások: 32
Era, köszönöm a válaszadásra. Megpróbáltam csak egy bejegyzést a bemeneti fájl, valami ilyesmi

Kód:
....
FILE=$1
fS=$(awk '{print $1}' $FILE)
((eS=fS+1))

echo "<Comp>" >> myxml
...
...
De én nem vagyok képes megcsinálni, ha az azonos num bejegyzéseket a bemeneti fájl több mint 1-nél. Kérem, segítsen.
  #5 (permalink)  
Old 10-09-2008
uwork72 uwork72 is offline
Regisztrált felhasználó
  
 

Join Date: Aug 2008
Hozzászólások: 32
cfajohnson, hogy tökéletesen működött jól nekem. Köszönöm.
  #6 (permalink)  
Old 10-07-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programozó, szerző
  
 

Join Date: Mar 2007
Helyszín: Toronto, Kanada
Hozzászólások: 2.361
Idézet:
Originally Posted by uwork72 View Post
Képviselőcsoport nevében,

Kód:
$ cat 2233
12236 ID2
12239 ID3

Please guide me to construct the following XML from the above input.


<Comp>
        <main>
                <hlp fS="12236" eS="12237">
                        <std no="2233" />
                        <id="ID2"/>
                </hlp>
                <hlp fS="12239" eS="12240">
                        <std no="2233" />
                        <id="ID3"/>
                </hlp>
        </main>
</Comp>

** eS is +1 of fS value
** std no is the file name

Ez, amit kért:
Kód:
file=2233
{
 read num1 id1
 read num2 id2
} < "$file"
fmt='<Comp>
        <main>
                <hlp fS="%d" eS="%d">
                        <std no="%d" />
                        <id="%s"/>
                </hlp>
                <hlp fS="%d" eS="%d">
                        <std no="%d" />
                        <id="%s"/>
                </hlp>
        </main>
</Comp>'

printf "%fmt\n" "$num1" "$(( $num1 + 1 ))" "$file" "$id1" \
                "$num2" "$(( $num3 + 1 ))" "$file" "$id2"
További valószínű, hogy mit akar a következő:

Kód:
file=2233
head='<Comp>
        <main>'
fmt='                <hlp fS="%d" eS="%d">
                        <std no="%d" />
                        <id="%s"/>
                </hlp>
'

tail='        </main>
</Comp>'

{
 printf "%s\n" "$head"
 while read nnum id
 do
   printf "$fmt" "$num" "$(( $num + 1 ))" "$file" "$id"
 done < "$file"
 printf "%s\n" "$tail"
} > NEWFILE


## (untested)
Closed Thread

Könyvjelzõk

Címkék
perl, perl műszak, váltás, elterelési perl

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 03:46 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0