Sortir un document en UNIX

Résolu
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
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

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Sur quel système es-tu ?
Quelle version de "sed" ?
0
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
Je suis sur le terminal de Mac Os 10.6
comment connaitre la version de sed ? sed -v ne marche pas...
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Regarde sur la sortie de "sed -v" si l'option "-i" existe ou dans le man.
0
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
en fait je n'ai pas de pb avec sed, c'est juste que je n'arrive pas à faire une sortie :(
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
0
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
Ah oui c'est enorme merci ça marche !
et si je ne vaux pas creer les .bak ? c'est possible ?
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Oui, c'est juste une sécurité au cas ou...
0
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
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.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Alors y'a plus qu'à...
0