The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Grep forskellige filer Brug en løkke? foleyml Shell Programmering og Scripting 6 01-02-2009 01:41 AM
grep og loop-filer kashik Shell Programmering og Scripting 4 06-16-2008 08:41 AM
Grep kommandoer i sløjfe karthikn7974 Shell Programmering og Scripting 0 04-28-2008 09:16 AM
grep-v mens loop Bobo UNIX for dummyer Spørgsmål & svar 8 01-26-2007 10:53 PM
grep i en løkke gundu Shell Programmering og Scripting 7 03-28-2005 04:59 PM

Closed Thread
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 04-22-2009
redalert013 redalert013 is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Stillinger: 1
Exclamation for loop og grep spørgsmål

Jeg forsøger at arbejde på en scriptfil for tcsh men jeg er temmelig ny til Linux og har flere spørgsmål.

1. Hvad er den mest effektive måde til at oprette en type for loop? Jeg har brug for at køre to sløjfer, som hver især vil køre i trin fra en start værdi til endelige værdi, fx i \u003d 0, 1 \u003d\u003d 10, i + + i alle andre sprog. Hvad er den mest effektive måde at sætte dette op?

Så langt vi kom op med:
sæt i_forloopval \u003d `echo" forloop "| awk '(for (p \u003d 0,7, p <1,43, p \u003d p 0,08) (udskrive p))'`
sæt j_forloopval \u003d `echo" forloop "| awk '(for (p \u003d 0,9, p <1,81, p \u003d p +0,1) (udskrive p))'`

foretrukne i ($ i_forloopval)
foretrukne j ($ j_forloopval)

men det ser ud som der skal være en mere effektiv måde at gøre dette.

2. Hver gang det løber gennem loop, det kommer til at køre et program, der skaber en unik outputfil. I stedet for manuelt at søge gennem denne fil, jeg havde håbet at bruge grep til at søge efter den linje, vi har brug for.

En given output kunne se ud:
1 \ 1 \ GINC-NODE006 \ Freq \ RB3LYP \ 6-311G (d) \ Br2 \ TYLERT \ 02-feb-2009 \ 0 \ \ # N Ge
om \u003d AllCheck Guess \u003d Læs SCRF \u003d Check GenChk RB3LYP/6-311G (d) Freq \ \ Titel \
\ 0,1 \ Br, 0., 0., -0,0263112705 \ Br, 0., 0., 2,3073112705 \ \ Version \u003d AM64L-G03Re
vD.01 \ stat \u003d 1-SGG \ HF \u003d- 5148.2839416 \ RMSD \u003d 5.854e-11 \ RMSF \u003d 1.293e-06 \ therm
al \u003d 0.0034749 \ Dipole \u003d 0., 0., 0. \ DipoleDeriv \u003d 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.
, 0., 0., 0., 0., 0., 0., 0., 0. \ Polar \u003d 17.7366557,0., 17.7366557,0., 0., 51,89093
66 \ PG \u003d D * H [C * (Br1.Br1)] \ NImag \u003d 0 \ \ 0.00021679,0., 0.00021679,0., 0., 0.1438
2273, -0.00021679,0., 0., 0.00021679,0., -0.00021679,0., 0., 0.00021679,0., 0
., -0.14382273,0., 0., 0.14382273 \ \ 0., 0., 0.00000224,0., 0., -0,00000224 \ \ \ @

den eneste information, som er nødvendig ud af dette er HF \u003d- 5148,2839416. Hvad er den bedste måde at udtrække kun dette fra outputfil? Dette kompliceres yderligere af det faktum, at dette ikke altid forekommer på én linje, men vil til tider blive vist som:
en én linje: HF \u003d- 5.148,28
39.416 og derefter denne del vil blive pakket til den næste linje.

Enhver hjælp vil være værdsat.
  #2 (permalink)  
Old 04-23-2009
devtakh devtakh is offline
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: Bangalore
Posts: 514
Citat:
Oprindeligt Indsendt af redalert013 View Post
Jeg forsøger at arbejde på en scriptfil for tcsh men jeg er temmelig ny til Linux og har flere spørgsmål.

1. Hvad er den mest effektive måde til at oprette en type for loop? Jeg har brug for at køre to sløjfer, som hver især vil køre i trin fra en start værdi til endelige værdi, fx i \u003d 0, 1 \u003d\u003d 10, i + + i alle andre sprog. Hvad er den mest effektive måde at sætte dette op?

Så langt vi kom op med:
sæt i_forloopval \u003d `echo" forloop "| awk '(for (p \u003d 0,7, p <1,43, p \u003d p 0,08) (udskrive p))'`
sæt j_forloopval \u003d `echo" forloop "| awk '(for (p \u003d 0,9, p <1,81, p \u003d p +0,1) (udskrive p))'`

foretrukne i ($ i_forloopval)
foretrukne j ($ j_forloopval)

men det ser ud som der skal være en mere effektiv måde at gøre dette.

2. Hver gang det løber gennem loop, det kommer til at køre et program, der skaber en unik outputfil. I stedet for manuelt at søge gennem denne fil, jeg havde håbet at bruge grep til at søge efter den linje, vi har brug for.

En given output kunne se ud:
1 \ 1 \ GINC-NODE006 \ Freq \ RB3LYP \ 6-311G (d) \ Br2 \ TYLERT \ 02-feb-2009 \ 0 \ \ # N Ge
om \u003d AllCheck Guess \u003d Læs SCRF \u003d Check GenChk RB3LYP/6-311G (d) Freq \ \ Titel \
\ 0,1 \ Br, 0., 0., -0,0263112705 \ Br, 0., 0., 2,3073112705 \ \ Version \u003d AM64L-G03Re
vD.01 \ stat \u003d 1-SGG \ HF \u003d- 5148.2839416 \ RMSD \u003d 5.854e-11 \ RMSF \u003d 1.293e-06 \ therm
al \u003d 0.0034749 \ Dipole \u003d 0., 0., 0. \ DipoleDeriv \u003d 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.
, 0., 0., 0., 0., 0., 0., 0., 0. \ Polar \u003d 17.7366557,0., 17.7366557,0., 0., 51,89093
66 \ PG \u003d D * H [C * (Br1.Br1)] \ NImag \u003d 0 \ \ 0.00021679,0., 0.00021679,0., 0., 0.1438
2273, -0.00021679,0., 0., 0.00021679,0., -0.00021679,0., 0., 0.00021679,0., 0
., -0.14382273,0., 0., 0.14382273 \ \ 0., 0., 0.00000224,0., 0., -0,00000224 \ \ \ @

den eneste information, som er nødvendig ud af dette er HF \u003d- 5148,2839416. Hvad er den bedste måde at udtrække kun dette fra outputfil? Dette kompliceres yderligere af det faktum, at dette ikke altid forekommer på én linje, men vil til tider blive vist som:
en én linje: HF \u003d- 5.148,28
39.416 og derefter denne del vil blive pakket til den næste linje.

Enhver hjælp vil være værdsat.
Jeg er ikke helt klart, om dit første spørgsmål. bedes redegøre for, hvad du forsøger at gennemføre.

for det andet spørgsmål, prøv denne

awk-F "\ \" '(for (i \u003d 1; i <\u003d NF; i + +) (if ($ i ~ / HF /) print $ i))' fil


skål,
Devaraj Takhellambam
Closed Thread

Bogmærker

Tags
foretrukne, grep, sløjfer, erstatte, søgning

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 11:33 AM.


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