![]() |
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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. |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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 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. |
|
||||
|
Citation:
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. |
|
|||||
|
hmm - essayez quelque chose comme:
Code:
# tail -f infile | while read line; do echo $line | tr "[a-z]" "[A-Z]"; done HELLO WORLD Code:
# echo hello >> infile # echo world >> infile |
|
||||
|
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. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|