|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : novembre 2003 Messages : 245 ![]() |
Bonjour,
J'ai un petit souci de débutant, dans un script shell. J'ai écrit une commande permettant de lister les identifiants des sémaphores utilisés : Code :
ipcs -s | tail +4 | tr -s " " | cut -d " " -f 2 J'ignore comment faire. Merci de votre aide. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : novembre 2003 Messages : 245 ![]() |
J'ai bien une idée :
Compter le nombre de lignes ; Pour chaque ligne : - récupérer l'identifiant ; - détruire ; N'y a-t-il pas plus simple ? Question subsidiaire : quelle commande unix pour supprimer les N dernières lignes d'un fichier ? La commande head ne me convient pas car elle impose de savoir combien il y a de lignes avant celles à supprimer. |
|
|
00
|
|
|
#3 | ||
|
Membre émérite
![]() ![]() Inscription : octobre 2004 Messages : 668 ![]() |
Citation:
Citation:
Code :
sed -e :a -e '$d;N;2,xxxxba' -e 'P;D' -i mon_fichier Si tu ne veux pas modifier le fichier source, mais juste récupérer la sortie de la commande, tu retires le -i final de la commande
__________________
Software becomes slower faster than hardware becomes faster http://xrenault.developpez.com API C standard (C ANSI ) |
||
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Inscription : novembre 2003 Messages : 245 ![]() |
Ca fonctionne !
Je voulais supprimer la dernière ligne (vide) générée par la commande, mais il semblerait que la boucle for ne la prend pas en compte. Ca n'a donc pas été nécessaire... ce qui m'arrange un peu car cette commande sed est des plus étranges ! Voici donc mon modeste script shell qui supprime les sémaphores et les mémoires après exécution d'un programme producteur/consommateur : Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Bidouille-tout Android Inscription : juillet 2006 Messages : 871 ![]() |
Bon 7 mois apres, ok
mais je suis tombé dessus en cherchant un truc a propos des sémaphores. Bon je ne connais pas la version du tail utilisé ci dessus, mais pour la 5.97 il est recomander de mettre plutôt tail -n +number au lieu de tail +number Bon sinon voici une autre version de ce code fort utile Code :
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre Ubuntu 10.04 Lucid Lynx @home LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
|
||
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : juin 2004 Messages : 25 ![]() |
Félicitation pour cette magnifique commande:
Code :
sed -e :a -e '$d;N;2,xxxxba' -e 'P;D' -i mon_fichier Je n'ai pas encore complètement compris l'opération grâce à "man sed". Mais c'est vraiment beau. Encore bravo. Ce qui est étonnant c'est que le besoin est trivial, et qu'il n'y a pas, semble t'il, de solution plus simple. A noter que le tail -r (reverse) qui permettrait aussi de répondre au besoin, n'est pas compatible linux. Raphael |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com