Modification fichier en Shell UNIX

pam13
Modification fichier en Shell UNIX

Bonjour à tous,

Voici mon problème :administrateur de messagerie postfix sous fedora 3, j'ai parfois un soucis dans les BAL des mes utilisateurs. Ceux-ci ne peuvent réceptionner les messages à cause d'une ligne blanche ( LF ) qui s'insère en tête du message. Je souhaiterai déployer une cron avec un script pour rechercher récursivement dans toutes les BALs ( boites aux lettres ) celles dont le début commence par une ligne blanche pour l'effacer.
Mes boites aux lettres se trouvent sous /var/mail/nom-utilisateur. Le système interne au Postfix effectue déjà se scan et indique les boites à problèmes dans ses fichiers de log. Pour le moment j'arrive donc à retrouver les fichiers devant être modifiés. Maintenant comment faire via shell unix pour les ouvrir et faire un dd sur la premiere ligne ? ( et enregistrer la modif bien entendu ! )Puis-je le faire via la commande sed et si oui quelle syntaxe ? je pensai à sed '1,1d' fic1 > fic1 pour renvoyer le contenu de la sortie écran du sed (sans la premiere ligne ) sur lui-même mais ça me parait compliqué de réécrire l'intégral du fichier juste pour supprimer une ligne...

Merci pour votre aide !

fredericmazue
Re: Modification fichier en Shell UNIX

Bonjour,

Voilà un cas typique où ce qui est un casse-tête en shell est un jeu d'enfant en Python. C'est pourquoi AMHA tu devrais te tourner vers ce langage qui excelle pour l'administration Unix.
En Python tu lis le fichier d'un coup, chaque ligne étant un élément d'une liste. Si la première ligne est vide tu la supprimes et tu réécris. En plus en Python il y a une fonction pour parcourir les arborescences. Bref tout ce qu'il te faut, et je suis sûr que Python est dispo dans ta Fedora.

Ceci étant d'où vient ce LF intempestif ? Bizarre ça ...

pam13
Re: Modification fichier en Shell UNIX

Et oui, bizarre...Le LF apparait de façon aléatoire, même si le problème est assez récurent sur certaines BALs. J'ai bien essayé de supprimer et recréer les BALs en question mais le problème persiste. Tout ce que j'ai pu voir en ouvrit les BALs en question avec un éditeur hexadécimal, c'est qu'il manque un retour chariot avant le LF, d'où le soucis de lecture de la BAL par postfix. Pour Python je ne connais pas ce language, mais pourquoi pas ! Mes connaissances en shell unix sont limitées pour le moment, malgré tout je pense que ça doit être possible. Je saurais le faire, mais en VB Script...Ca m'aide pas beaucoup là ! :lol:

fredericmazue
Re: Modification fichier en Shell UNIX

Tu verras, Python c'est génial et super simple. Ca s'apprend en un après-midi