![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna! |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Sed till grep bara siffror i strängen | ajilesh | Shell-programmering och Skript | 5 | 11-07-2008 01:39 |
| Hur sortera en sträng med siffror | ahjiefreak | Shell-programmering och Skript | 5 | 12-21-2007 10:52 |
| Hur du jämför Floating Point / reella tal | padarthy | Shell-programmering och Skript | 13 | 09-24-2007 08:03 |
| Hur får jag siffror från ett snöre? | eliraza6 | Shell-programmering och Skript | 13 | 07-18-2007 07:04 |
| Problemet med flytande punkt nummer i awk | kanagias | Shell-programmering och Skript | 7 | 06-24-2005 03:14 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Använda Flytande nummer i String
Bäste Unix Gurus,
Jag har en lista med filer som jag vill slinga över .... till exempel: Kod:
sl40_z11.70.txt sl41_z11.40.txt sl42_z11.10.txt sl43_z10.80.txt Kod:
#!/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 Mitt problem är att skriptet fungerar bra med undantag för att bash inte känner igen $ zposition. Det synes inte kan hantera iteration med flytande nummer? Kan någon hjälpa? Skål |
|
||||
|
Citat:
Kod:
echo "$zposition" |bc Kod:
echo "sl$[n]_z$[zposition].txt" |
|
||||
|
Citat:
Jag över det också och kliade mitt huvud också! Det finns en bugg i scriptet ... om firstslice är större än lastslice Det kommer inte att fungera. Så jag har provat en annan please använda awk. som en påminnelse, det är vad jag vill göra, jag har en lista över filer: Kod:
sl40_z11.70.txt sl41_z11.40.txt sl42_z11.10.txt sl43_z10.80.txt Kod:
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 min nya skript är: Kod:
#!/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
loopar över 4 filer fint. Men jag vet inte hur man kan införliva resultatet i den sista raden i skriptet så att awk erkänner filnamn. Någon hjälp skulle vara mycket uppskattat. Skål |