The UNIX and Linux Forums  
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.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



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

Reply
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 06-29-2009
tintin72 tintin72 is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 23
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
med hjälp av skript

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
var firstslice är 40 och lastslice är 43 och 0,3 är skillnaden i z-cordinate btw filerna.

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
  #2 (permalänk)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Chennai
Inlägg: 40
Prova detta och ändras beroende på ur variabler.

echo "skala \u003d 4; $ b + $ c" | bc
  #3 (permalänk)  
Old 06-29-2009
tintin72 tintin72 is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 23
Citat:
Ursprungligen postat av jayan_jay View Post
Prova detta och ändras beroende på ur variabler.

echo "skala \u003d 4; $ b + $ c" | bc
Jag är inte säker på att jag förstår dig. Doing
Kod:
echo "$zposition" |bc
avkastning rätt utgång. Men gör
Kod:
echo "sl$[n]_z$[zposition].txt"
inte. Detta är mitt problem.
  #4 (permalänk)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registered User
  
 

Join Date: Jul 2008
Plats: Chennai
Inlägg: 40
Testa här
echo "sl $ (n) _z $ (zposition). txt"
  #5 (permalänk)  
Old 07-01-2009
tintin72 tintin72 is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 23
Citat:
Ursprungligen postat av jayan_jay View Post
Testa här
echo "sl $ (n) _z $ (zposition). txt"
fungerar inte. kan jag bara fråga .. har du verkligen testa dina förslag bufore antyder att forumet?
  #6 (permalänk)  
Old 07-01-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Ort: Florida
Inlägg: 1.915
Humm, jag har tittat på detta shell script några gånger och kliade mitt huvud.

Du anger variabeln "q" för att en sträng
Kod:
q="scale=3; $zpos"
än du räknar med att kunna dra ett nummer från den
Kod:
zposition=$q-$f
Hur är det tänkt att fungera?

Senast redigerad av fpmurphy; 07-01-2009 vid 08:12.. Orsak: fast stavfel
  #7 (permalänk)  
Old 07-06-2009
tintin72 tintin72 is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 23
Citat:
Ursprungligen postat av fpmurphy View Post
Humm, jag har tittat på detta shell script några gånger och kliade mitt huvud.

Du anger variabeln "q" för att en sträng
Kod:
q="scale=3; $zpos"
än du räknar med att kunna dra ett nummer från den
Kod:
zposition=$q-$f
Hur är det tänkt att fungera?
Hej,

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
Jag vill slinga genom dessa filer hålla sina märkning intakt. Till exempel, jag vill göra i en enda skript

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
Jag har hundratals av dessa filer och jag behöver för att utföra andra icke-triviala operationer på dem. Problemet är bash inte känner igen flytande nummer så jag kan inte loop över dem.

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
Så kör skriptet och in på uppmaningarna "40", "43", "11.70"
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
Reply

Komihåglista

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 07:07.


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