Sortir un document en UNIX

Résolu
Bonjour à tous,

Je cherche à :
- ouvrir des pages html (environ 5 000),
- les modifier
- sauver sur le même fichier

C'est sur la dernière étape que je bloque...

je fais un boucle :

for i in $(ls),do sed 's+aaa+bbb+g' $i>>$i

Mais ca me mets mes modifs à la suite du document , sans doute a cause de ">>"
Comment faire pour enregistrer mes modifs sur le même document sans avoir les anciennes données ?

D'avance merci !

4 réponses

  1. Contributeur
    Salut,

    Sur quel système es-tu ?
    Quelle version de "sed" ?
    1. Je suis sur le terminal de Mac Os 10.6
      comment connaitre la version de sed ? sed -v ne marche pas...
      1. Contributeur
        Regarde sur la sortie de "sed -v" si l'option "-i" existe ou dans le man.
    2. en fait je n'ai pas de pb avec sed, c'est juste que je n'arrive pas à faire une sortie :(
      1. Contributeur
        D'où ma demande et savoir si ta version de 'sed' comprend l'option "-i" qui permet de modifier les fichiers "en place" :

        sed -i.bak 's/aaa/bbb/' fichier

        Modifie directement le fichier "fichier" et crée en prime une sauvegarde nommée "fichier.bak".

        Sans cette option il te faudra obligatoirement passer par un fichier temporaire :

        sed 's/aaa/bbb/' fichier > fichier.tmp && mv fichier.tmp fichier
      2. Ah oui c'est enorme merci ça marche !
        et si je ne vaux pas creer les .bak ? c'est possible ?
      3. Contributeur
        Oui, c'est juste une sécurité au cas ou...
    3. Ah ok,

      oui j'ai l'option -i !

      man sed :

      The following options are available:
      
           -E      Interpret regular expressions as extended (modern) regular
                   expressions rather than basic regular expressions (BRE's).  The
                   re_format(7) manual page fully describes both formats.
      
           -a      The files listed as parameters for the ''w'' functions are cre-
                   ated (or truncated) before any processing begins, by default.
                   The -a option causes sed to delay opening each file until a com-
                   mand containing the related ''w'' function is applied to a line
                   of input.
      
           -e command
                   Append the editing commands specified by the command argument to
                   the list of commands.
      
           -f command_file
                   Append the editing commands found in the file command_file to the
                   list of commands.  The editing commands should each be listed on
                   a separate line.
      
           -i extension
                   Edit files in-place, saving backups with the specified extension.
                   If a zero-length extension is given, no backup will be saved.  It
                   is not recommended to give a zero-length extension when in-place
                   editing files, as you risk corruption or partial content in situ-
                   ations where disk space is exhausted, etc.
      
           -l      Make output line buffered.
      
           -n      By default, each line of input is echoed to the standard output
                   after all of the commands have been applied to it.  The -n option
                   suppresses this behavior.
      
      1. Contributeur
        Alors y'a plus qu'à...