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.

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 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 9
Est-il possible avec sed ou awk?

Salut à tous,

Je suis Tring d'écrire un script qui doit lire la première ligne du fichier et effectuer certaines tâches. Une fois la tâche terminée la prochaine ligne du fichier doit être lu de la tâche doit être exécutée.
Alors, est-il possible d'avoir un compteur genre de chose, en sed ou awk, ce qui cause l'augmentation, et donc la ligne suivante pour être lu?
Voici comment j'ai pensé de le faire, mais elle ne fonctionne pas comme je ne peux pas attribuer une valeur à $ C pour arriver à lire une ligne:

Code:
C=1 #counter
while true
do
 LOG=`sed '$C!d' /var/log/somelog.log`
 #
 perform the task on $LOG
 #
 C=`expr $C + 1`
done
Merci
  #2 (permalink)  
Old 10-27-2008
danmero danmero is online now Forum Advisor  
  
 

Join Date: Nov 2007
Lieu: 45.48-73.63
Posts: 1,422
Concept de base de scripts:
Code:
while read line
do
  #perform the task on "$line"
done < /var/log/somelog.log
  #3 (permalink)  
Old 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 9
Merci pour la réponse danmero.

J'avais essayé auparavant. Lorsque le script par le biais de lectures et atteint EOF somelog.log sa sortie. Mais je ne veux pas de sortie. Si l'EOF est atteint du script devrait attendre que la ligne est ajouté à somelog.log et accomplir la tâche. Aussi la nouvelle de somelog.log sera ajouté à des intervalles aléatoires.

Toutes les suggestions sur la façon de faire attendre le script où il s'est arrêté, plutôt que de sortir et de continuer lorsque la nouvelle ligne est ajoutée?

Merci.
  #4 (permalink)  
Old 10-27-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Date d'inscription: juin 2003
Lieu: Scotland
Messages: 431
vous pouvez le tail-f log et l'analyse que par le biais du script.

Si le travail .... méthode alternative est de se rappeler d'où vous tenez dans le fichier (ligne de compte), puis exécutez votre script, à des intervalles de départ où vous l'avez laissée - juste faire attention de manutention logrotates
  #5 (permalink)  
Old 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 9
Citation:
Posté par Tytalus View Post
vous pouvez le tail-f log et l'analyse que par le biais du script.

Si le travail .... méthode alternative est de se rappeler d'où vous tenez dans le fichier (ligne de compte), puis exécutez votre script, à des intervalles de départ où vous l'avez laissée - juste faire attention de manutention logrotates
Si je le tail-f log et l'analyse par le script d'une nouvelle ligne est ajoutée à l'écriture du journal des sorties.
Je n'ai pas essayé les autres mais pas comme je ne suis pas familier avec logrotates.
Y aurait-il une autre manière de faire cela?

Merci.
  #6 (permalink)  
Old 10-28-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Date d'inscription: juin 2003
Lieu: Scotland
Messages: 431
hmm - essayez quelque chose comme:

Code:
#  tail -f infile | while read line; do echo $line | tr "[a-z]" "[A-Z]"; done
HELLO
WORLD
infile où est un fichier vide, et je n'ai tout simplement:

Code:
#  echo hello >> infile
#  echo world >> infile
  #7 (permalink)  
Old 10-28-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Date d'inscription: octobre 2008
Messages: 9
Merci pour la réponse tytalus.

Je suppose que cela ne fonctionne pas pour moi que mon script contient 10 logiques en elle. J'ai donc pris une autre voie et d'utiliser cron et ls et déplacer les fichiers vers le travail est une fois de plus je l'ai eu à faire le travail. Mais il aurait été agréable et plus facile si je pouvais seulement trouver un moyen de faire ce que je voulais. Pourtant je continuerai à lire et voir si je peux faire de la façon dont je voulais faire.

Merci encore.
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 08:54 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