Daniel Caillibaud a écrit, mercredi 30 mai 2007, à 11:13 : > Alexandre Mackow wrote: > > >Bonjour à tous,
bonjour, > >je suis amené, dans le cadre de mon taf, a essayer de metter en place > >une solution de scripting. > >J'ai un repertoire donné, dans ce repertoire via une tache cron, je > >dois effectuer une modif sur le fichier... > >En reel ca donne, si le nom du fichier contient un P alors remplacer le > >dernier caractère par un 4.... > > Le dernier caractère du fichier ou de son nom ? > > >Comment faire pour remplacer le dernier caractere de chaque ligne.... > >Certainement via sed > > oui, par exemple > > >mais je ne trouve pas l'option dernier caractere... > > dernier de la ligne, c'est '$' dans une regexp (les autres ont répondu), le > dernier du fichier, c'est aussi $ mais comme sélecteur > Par exemple > sed -i -e '$ s/\(.*\)$/\14/' fichier > > va ajouter le caractère 4 à la fin de la dernière ligne de fichier. > > le -i précise de faire ça sur le fichier directement, sans backup. > Pour un backup du fichier original (avec ajout de .bak) > sed -i .bak -e '$ s/\(.*\)$/\14/' fichier On peut simplifier : sed -i.bak -e 's/.$/4/' fichier ou 's/.\?$/4/' sur toutes les lignes, mêmes vides. Pour la question posée, cd répertoire/ && sed -i.bak -e 's/.$/4/' *P* donnera un avertissement si un nom de sous-répertoire contient un P. > cf entre autres, http://cli.asyd.net/home/filtres/sed Cf. aussi http://sed.sf.net/ et ses collections d'unilignes. -- Jacques L'helgoualc'h -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

