The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



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

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 06-29-2009
tintin72 tintin72 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 23
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
  #2 (permalink)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registreret Bruger
  
 

Join Date: Jul 2008
Sted: Chennai
Stillinger: 40
Prøv dette og ændre ifølge ur variabler.

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

Join Date: Mar 2009
Stillinger: 23
Citat:
Oprindeligt Indsendt af jayan_jay View Post
Prøv dette og ændre ifølge ur variabler.

echo "skala \u003d 4; $ b + $ c" | bc
Jeg er ikke sikker på jeg forstår dig. Gør
Code:
echo "$zposition" |bc

returnerer de korrekte output. Men gør
Code:
echo "sl$[n]_z$[zposition].txt"

ikke. Dette er mit problem.
  #4 (permalink)  
Old 06-29-2009
jayan_jay jayan_jay is offline
Registreret Bruger
  
 

Join Date: Jul 2008
Sted: Chennai
Stillinger: 40
Prøv dette
echo "sl $ (n) _z $ (zposition). txt"
  #5 (permalink)  
Old 07-01-2009
tintin72 tintin72 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 23
Citat:
Oprindeligt Indsendt af jayan_jay View Post
Prøv dette
echo "sl $ (n) _z $ (zposition). txt"
ikke virker. kan jeg bare spørge .. gjorde du egentlig afprøve dine forslag bufore tyder dem til forum?
  #6 (permalink)  
Old 07-01-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Beliggenhed: Florida
Stillinger: 1945
Humm, jeg har kigget på denne shell script et par gange og ridsede mit hoved.

Du angiver variablen 'q' til en streng

Code:
q="scale=3; $zpos"

endnu, du forventer at være i stand til at trække et nummer fra det

Code:
zposition=$q-$f

Hvordan er dette betød at arbejde?

Sidst redigeret af fpmurphy; 07-01-2009 på 09:12 PM.. Årsag: faste typo
  #7 (permalink)  
Old 07-06-2009
tintin72 tintin72 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 23
Citat:
Oprindeligt Indsendt af fpmurphy View Post
Humm, jeg har kigget på denne shell script et par gange og ridsede mit hoved.

Du angiver variablen 'q' til en streng

Code:
q="scale=3; $zpos"

endnu, du forventer at være i stand til at trække et nummer fra det

Code:
zposition=$q-$f

Hvordan er dette betød at arbejde?
Hej,

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
Reply

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 08:57 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0