49 & & $ 2 + $ 3 + $ 4" /> Ajout d'un fichier sans l'impression d'écran - The UNIX et Linux Forums
The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Ajout d'un fichier vinay123 De programmation et de script Shell 1 06-19-2008 04:05 AM
Lecture des contenus spécifiques à partir d'un fichier et l'ajout d'un autre fichier dnicky De programmation et de script Shell 5 10-04-2005 06:45 AM
l'impression à l'écran google UNIX for Advanced & Expert Users 2 10-24-2003 12:19 AM
l'ajout d'un fichier chumba UNIX pour les nuls Questions et réponses 1 05-24-2001 12:09 PM
Ajout à un fichier Astudent UNIX pour les nuls Questions et réponses 1 10-20-2000 03:17 AM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-17-2009
lazypeterson lazypeterson is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 13
Ajout d'un fichier sans l'impression à l'écran

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
Ce que je suis en train de faire changer les impressions de sorte que ce qui est dans les cours est joint au dossier plutôt que sur papier à l'écran. J'ai essayé d'utiliser sed sans succès. Quelqu'un peut-il m'orienter dans la bonne direction? Merci.
  #2 (permalink)  
Old 03-17-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Modérateur
  
 

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

Join Date: Mar 2007
Lieu: Toronto, Canada
Messages: 2361
Citation:
Posté par lazypeterson View Post
Code:
#!/bin/csh

Non pas que c'est important dans ce cas, mais voir ces pages:
Dix bonnes raisons de ne pas utiliser le shell C
Csh problèmes
Csh Programming Considered Harmful
Citation:
Code:
awk 'BEGIN     { print "Name           Exam1           Exam2           Exam 3        Total        Grade" }' grades | tee gradesorted

Pourquoi deux programmes awk?
Citation:
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
Ce que je suis en train de faire changer les impressions de sorte que ce qui est dans les cours est joint au dossier plutôt que sur papier à l'écran. J'ai essayé d'utiliser sed sans succès. Quelqu'un peut-il m'orienter dans la bonne direction?

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
Registered User
  
 

Date d'inscription: mars 2009
Messages: 13
Je ne sais pas pourquoi j'ai été l'aide de deux awk ...

Merci de nettoyer mon sloppy code. Le seul problème que je vais avoir, à ce point, est le tri des gradessorted fichier sans l'en-tête (nom, Exam1, etc) étant sur le fond. Est-il possible d'exclure des lignes à partir d'un genre?
  #5 (permalink)  
Old 03-17-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Date: Mar 2007
Lieu: Toronto, Canada
Messages: 2361

Pipe printf trier par:
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
Registered User
  
 

Date d'inscription: mars 2009
Messages: 13
Marvellous. Merci a bunch!
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 07:52 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0