![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Sed til grep kun numre i strengen | ajilesh | Shell Programmering og Scripting | 5 | 11-07-2008 01:39 PM |
| Hvordan sortere en streng med numre | ahjiefreak | Shell Programmering og Scripting | 5 | 12-21-2007 10:52 AM |
| Hvordan man kan sammenligne Floating point / reelle tal | padarthy | Shell Programmering og Scripting | 13 | 09-24-2007 09:03 PM |
| Hvordan får jeg numre fra en streng? | eliraza6 | Shell Programmering og Scripting | 13 | 07-18-2007 08:04 AM |
| Problemet med flydende komma tal i awk | kanagias | Shell Programmering og Scripting | 7 | 06-24-2005 04:14 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Brug af Floating Numbers i String
Kære Unix Gurus, Jeg har en liste over de filer, som jeg ønsker at sløjfe over .... for eksempel: Code:
sl40_z11.70.txt sl41_z11.40.txt sl42_z11.10.txt sl43_z10.80.txt ved hjælp af script Code:
#!/bin/sh # echo -n "....enter first Z-coordinate position....."; read zpos q="scale=3; $zpos" p=0.3 # loopNumber=$[($lastslice - $firstslice)+1] echo "loopNumber is $loopNumber" echo firstslice no. is $firstslice for ((i=$firstslice; i<=$loopNumber; i++)); do n=$[i] for ((k=0; k<=$loopNumber; k++)); do r=$[k] ; f=$r*$p ; zposition=$q-$f echo "sl$[n]_z$[zposition].txt" done done hvor firstslice er 40 og lastslice er 43 og 0,3 er forskellen i z-cordinate BTW filerne. Mit problem er, at scriptet arbejder fint med den undtagelse, at bash ikke genkender $ zposition. Det tilsyneladende ikke kan håndtere iteration med flydende tal? Kan nogen hjælpe? Skål |
|
||||
|
Citat:
Code:
echo "$zposition" |bc returnerer de korrekte output. Men gør Code:
echo "sl$[n]_z$[zposition].txt" ikke. Dette er mit problem. |
|
||||
|
Citat:
Jeg revurderede det for og ridsede mit hoved såvel! Der er en fejl i scriptet ... hvis firstslice er større end lastslice Det vil ikke fungere. Så jeg har prøvet en anden vinkel ved hjælp awk. som en påmindelse om, det er, hvad jeg ønsker at gøre, jeg har en liste af filer: Code:
sl40_z11.70.txt sl41_z11.40.txt sl42_z11.10.txt sl43_z10.80.txt Jeg ønsker at sløjfe gennem disse filer holde deres mærkning intakt. For eksempel, jeg ønsker at gøre i et enkelt script Code:
cp sl40_z11.70.txt sl40_z11.70.dat cp sl41_z11.40.txt sl41_z11.40.dat cp sl42_z11.10.txt sl42_z11.10.dat cp sl43_z10.80.txt sl43_z10.80.dat Jeg har flere hundrede af disse filer, og jeg er nødt til at foretage andre ikke-trivielle operationer på dem. Problemet er bash genkender ikke flydende tal, så jeg kan ikke loop over dem. mit nye script er: Code:
#!/bin/sh
#
echo -n "....enter first slice number....."; read firstslice
echo -n "....enter last slice number....."; read lastslice
#
echo -n "....enter first Z-coordinate position....."; read zpos
#sliceDiff=0.3
#
loopNumber=$[($lastslice - $firstslice)+1]
echo "loopNumber is $loopNumber"
echo firstslice no. is $firstslice
for ((k=$firstslice;k<=$lastslice; k++)); do
r=$[k]
echo "$firstslice $r $zpos" | awk '{print $3-(($2-$1)*0.3)}'
#echo "$firstslice $r $zpos" | awk '{print $i}' sl$2_z[$3-(($2-$1)*0.3)].txt > xxxx.dat
done
Så kører dette script og ind på bedt "40", "43", "11,70" loops i løbet af de 4 filer pænt. Men jeg ved ikke, hvordan man kan indarbejde output i den sidste linje i scriptet så awk genkender filnavnet. Enhver hjælp vil være meget værdsat. Skål |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|