Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/04/2011, à 19:19

Miroslav

remplacer chaine de caractère (RESOLU)

Bonjour,

je cherche à remplacer une chaine de caractère d'un fichier .igs. Le problème est que j'affiche et je localise la chaine dans mon fichier avec cat et ensuite grep, mais sed n'accèpte que les fichiers en entrée...

cat Lits.igs | grep halt_samples_per_pixel | sed -i -e "s/[0-9]/1800/"
        <halt_samples_per_pixel>1600</halt_samples_per_pixel>
sed: pas de fichiers en entrée

la même commande avec un fichier renseigné me remplace tous les chiffres sauf le 0 par 1800 dans mon fichier .igs, ça c'est un mystère de plus, pourquoi pas le 0?

là je suis vraiment perdu, j'ai essayer pleins d'autres choses mais sans aucun résultat

d'avance merci

Dernière modification par Miroslav (Le 12/04/2011, à 06:16)

Hors ligne

#2 Le 11/04/2011, à 19:31

alex2423

Re : remplacer chaine de caractère (RESOLU)

Ahh très bonne question

Hors ligne

#3 Le 11/04/2011, à 22:09

FRUiT

Re : remplacer chaine de caractère (RESOLU)

> cat Lits.igs
<div>1600</div>
> sed -i -r '/div/s/[0-9]+/1800/' Lits.igs
> cat Lits.igs
<div>1800</div>
>

Dernière modification par FRUiT (Le 11/04/2011, à 22:10)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#4 Le 11/04/2011, à 22:36

aduxas

Re : remplacer chaine de caractère (RESOLU)

sed -i :  edit files in-place

Evidemment, il faut qu'il y ait un fichier.  Ce n'est pas le cas ici.  Quand on enchaine les commandes, seule la premiere peut ouvrir un fichier d'entree.  Ses sorties sont envoyees dans la commande suivante comme si elles etaient saisies a l'ecran.  sed ne lit donc pas ses donnees dans un fichier, et ne peut y ecrire ses resultats.  La commande sed de FRUiT se lit:  "dans toute ligne contenant la chaine "div", remplace la premiere sequence d'au moins un chiffre par 1800.

Hors ligne

#5 Le 12/04/2011, à 06:14

Miroslav

Re : remplacer chaine de caractère (RESOLU)

FRUiT a encore frappé
Merci

Hors ligne