49 & & $ 2 + $ 3 + $ 4" /> Voeg naar een bestand zonder afdrukken naar scherm - De Unix-en Linux Forum
The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Voeg in een bestand vinay123 Programmeren en Shell Scripting 1 06-19-2008 04:05
Reading specifieke inhoud van een bestand en voeg het naar een ander bestand dnicky Programmeren en Shell Scripting 5 10-04-2005 06:45
afdrukken op het scherm google UNIX for Advanced & Expert Gebruikers 2 10-24-2003 12:19 AM
voeg een bestand chumba UNIX voor Dummies Questions & Answers 1 05-24-2001 12:09
En voeg het naar een bestand Astudent UNIX voor Dummies Questions & Answers 1 10-20-2000 03:17

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-17-2009
lazypeterson lazypeterson is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2009
Posts: 13
Voeg naar een bestand zonder afdrukken op scherm


Code:
#!/bin/csh
awk 'BEGIN     { print "Name           Exam1           Exam2           Exam 3        Total        Grade" }' grades | tee gradesorted
awk '{if ($2+$3+$4<50){grade="F"}else if ($2+$3+$4>49 && $2+$3+$4<65)
{grade="D"}else if ($2+$3+$4>64 && $2+$3+$4<80){grade="C"}
else if ($2+$3+$4>79 && $2+$3+$4<90){grade="B"}else{grade="A"}}
{print $0, "          ", $2+$3+$4, "          ", grade;}' grades | tee gradesorted

Wat ik probeer te doen veranderen zowel de prenten, zodat wat er in de noteringen krijgt toegevoegd aan het bestand niet afgedrukt op het scherm. Ik heb geprobeerd met behulp van sed zonder succes. Kan iemand me in de goede richting? Bedankt.
  #2 (permalink)  
Old 03-17-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Locatie: Boston, MA
Berichten: 5.131
awk '... stuff ...' > gradesorted
  #3 (permalink)  
Old 03-17-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2380
Citaat:
Oorspronkelijk geplaatst door lazypeterson View Post
Code:
#!/bin/csh

Niet dat het er toe doet in dit geval, maar zie deze pagina's:
Top Tien Redenen geen gebruik te maken van de C-shell
Csh problemen
Csh Programming Considered Harmful
Citaat:
Code:
awk 'BEGIN     { print "Name           Exam1           Exam2           Exam 3        Total        Grade" }' grades | tee gradesorted

Waarom twee awk programma's?
Citaat:

Code:
awk '{if ($2+$3+$4<50){grade="F"}else if ($2+$3+$4>49 && $2+$3+$4<65)
{grade="D"}else if ($2+$3+$4>64 && $2+$3+$4<80){grade="C"}
else if ($2+$3+$4>79 && $2+$3+$4<90){grade="B"}else{grade="A"}}
{print $0, "          ", $2+$3+$4, "          ", grade;}' grades | tee gradesorted

Wat ik probeer te doen veranderen zowel de prenten, zodat wat er in de noteringen krijgt toegevoegd aan het bestand niet afgedrukt op het scherm. Ik heb geprobeerd met behulp van sed zonder succes. Kan iemand me in de goede richting?


Code:
#!/bin/sh

awk 'BEGIN {
   format = "%-15s%-15s%-15s%-15s\n"
   printf format, "Name", "Exam1", "Exam2", "Exam 3", "Total", "Grade"
  }
{
 total = $2 + $3 + $4
      if (total < 50) {grade = "F"}
 else if (total < 65) {grade = "D"}
 else if (total < 80) {grade = "C"}
 else if (total < 90) {grade = "B"}
 else {grade="A"}
}
{printf format, $1, $2, $3, $4, total, grade}' grades > gradesorted

  #4 (permalink)  
Old 03-17-2009
lazypeterson lazypeterson is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2009
Posts: 13
Ik weet niet waarom ik werd met behulp van twee awk's ...

Bedankt voor het helpen opruimen mijn slordige code. Het enige probleem dat ik heb op dit punt, is het sorteren van de gradessorted bestand zonder de header (Naam, Exam1, enz.) wordt aan de onderkant. Is er een manier om vanuit een soort?
  #5 (permalink)  
Old 03-17-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2380

Pipe de printf via sort:

Code:
awk 'BEGIN {
   format = "%-15s%-15s%-15s%-15s%-15s%-15s\n"
   printf format, "Name", "Exam1", "Exam2", "Exam 3", "Total", "Grade"
  }
{
 total = ( $2 + $3 + $4 ) / 3 # I think you want the average
      if (total < 50) grade = "F"
 else if (total < 65) grade = "D"
 else if (total < 80) grade = "C"
 else if (total < 90) grade = "B"
 else grade="A"

 format = "%-15s%-15s%-15s%-15s%-15d%-15s\n"
 printf format, $1, $2, $3, $4, total, grade | "sort"
} ' grades > gradesorted

  #6 (permalink)  
Old 03-17-2009
lazypeterson lazypeterson is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2009
Posts: 13
Prachtig. Thanks a bunch!
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:13.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0