The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Dummies Spørsmål og svar
.
google unix.com



UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen!

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Sed til grep bare tall i strengen ajilesh Shell programmering og Skripting 5 11-07-2008 01:39
Hvordan sortere en streng med tall ahjiefreak Shell programmering og Skripting 5 12-21-2007 10:52
Hvordan sammenlikne Floating Point / reelle tall padarthy Shell programmering og Skripting 13 09-24-2007 08:03
Hvordan får jeg numre fra en streng? eliraza6 Shell programmering og Skripting 13 07-18-2007 07:04
Problemet med flytende punktet i awk kanagias Shell programmering og Skripting 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 denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-29-2009
tintin72 tintin72 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 23
Bruke Flytende i String

Kjære Unix Gurus,

Jeg har en liste over filer som jeg ønsker å sløyfe over .... for eksempel:
Code:
 
sl40_z11.70.txt
sl41_z11.40.txt
sl42_z11.10.txt
sl43_z10.80.txt
bruker 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 forskjellen i z-cordinate btw filene.

Mitt problem er at scriptet fungerer greit med unntak av at bash ikke gjenkjenner $ zposition. Det tilsynelatende ikke kan håndtere gjentakelse med flytende tall? Kan noen hjelpe?

Skål
  #2 (permalink)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registrert bruker
  
 

Bli Dato: juli 2008
Beliggenhet: Chennai
Innlegg: 40
Prøv dette og endres i henhold til ur variabler.

echo "scale \u003d 4; $ b + $ c" | bc
  #3 (permalink)  
Old 06-29-2009
tintin72 tintin72 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 23
Sitat:
Originally Posted by jayan_jay View Post
Prøv dette og endres i henhold til ur variabler.

echo "scale \u003d 4; $ b + $ c" | bc
Jeg er ikke sikker jeg forstår deg. Doing
Code:
echo "$zposition" |bc
returnerer riktig utgang. Men gjør
Code:
echo "sl$[n]_z$[zposition].txt"
ikke. Dette er mitt problem.
  #4 (permalink)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registrert bruker
  
 

Bli Dato: juli 2008
Beliggenhet: Chennai
Innlegg: 40
Prøv dette
echo "sl $ (n) _z $ (zposition). txt"
  #5 (permalink)  
Old 07-01-2009
tintin72 tintin72 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 23
Sitat:
Originally Posted by jayan_jay View Post
Prøv dette
echo "sl $ (n) _z $ (zposition). txt"
ikke fungerer. kan jeg bare spør .. gjorde du faktisk prøve ut dine forslag bufore foreslå dem til forumet?
  #6 (permalink)  
Old 07-01-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Bli Dato: desember 2003
Sted: Florida
Innlegg: 1924
Humm, jeg har sett på denne shell script et par ganger og riper hodet.

Du angir variabelen "q" til en streng
Code:
q="scale=3; $zpos"
men du forventer å kunne subtrahere et tall fra det
Code:
zposition=$q-$f
Hvordan er dette ment å fungere?

Sist endret av fpmurphy; 07-01-2009 på 08:12.. Årsak: fikset skrivefeil
  #7 (permalink)  
Old 07-06-2009
tintin72 tintin72 is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 23
Sitat:
Originally Posted by fpmurphy View Post
Humm, jeg har sett på denne shell script et par ganger og riper hodet.

Du angir variabelen "q" til en streng
Code:
q="scale=3; $zpos"
men du forventer å kunne subtrahere et tall fra det
Code:
zposition=$q-$f
Hvordan er dette ment å fungere?
Hei,

Jeg Revisited det altfor og riper hodet også! Det er en feil i skriptet ... hvis firstslice er større enn lastslice Den vil ikke fungere. Så jeg har prøvd et annet tråklesting hjelp awk.

som en påminnelse, dette er hva jeg vil gjøre, jeg har en liste over filer:

Code:
 
sl40_z11.70.txt
sl41_z11.40.txt
sl42_z11.10.txt
sl43_z10.80.txt
Jeg ønsker å sløyfe gjennom disse filene holde merking intakt. For eksempel, jeg vil gjø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 hundrevis av disse filene, og jeg trenger å utføre annet ikke-trivielle operasjoner på dem. Problemet er bash ikke gjenkjenner flytende tall, så jeg kan ikke loop over dem.

min nye skriptet 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å kjører dette skriptet og gå inn på ledetekster "40", "43", "11.70"
looper over 4 filer pent. Men jeg vet ikke hvordan jeg skal innlemme utdataene i siste linje av skriptet slik at awk gjenkjenner filnavn.

Eventuelle hjelpe ville være mye verdsatt.

Skål
Reply

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 07:27.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0