#1 Le 11/04/2011, à 18: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, à 05:16)
Hors ligne
#2 Le 11/04/2011, à 18:31
- alex2423
Re : remplacer chaine de caractère (RESOLU)
Ahh très bonne question
Hors ligne
#3 Le 11/04/2011, à 21: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, à 21: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, à 21: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, à 05:14
- Miroslav
Re : remplacer chaine de caractère (RESOLU)
FRUiT a encore frappé
Merci
Hors ligne