Suppression chaine de caractère
Résolu
bkrqpzef
Messages postés
213
Statut
Membre
-
bkrqpzef Messages postés 213 Statut Membre -
bkrqpzef Messages postés 213 Statut Membre -
Bonjour,
J'ai un petit fichier txt que je voudrai modifier. Il est de la forme :
.maison=bateau
.avion=chateau
etc ...
J'aimerai transformer ça en supprimant tout ce qui suit le "=". c'est à dire :
.maison=
.avion=
etc ...
Bon sur le papier ça n'est pas très compliqué, le problème c'est que la liste est longue et que je ne peux pas supprimer ça manuellement. J'ai tenté d'utiliser : (avec Cygwin)
sed -e "s/=*\\n/=\\n/g" fichier.txt > fichier2.txt
Et d'autres choses, mais rien ne fonctionne correctement. Si vous avez des idées je suis preneur.
Merci à vous !!!!
J'ai un petit fichier txt que je voudrai modifier. Il est de la forme :
.maison=bateau
.avion=chateau
etc ...
J'aimerai transformer ça en supprimant tout ce qui suit le "=". c'est à dire :
.maison=
.avion=
etc ...
Bon sur le papier ça n'est pas très compliqué, le problème c'est que la liste est longue et que je ne peux pas supprimer ça manuellement. J'ai tenté d'utiliser : (avec Cygwin)
sed -e "s/=*\\n/=\\n/g" fichier.txt > fichier2.txt
Et d'autres choses, mais rien ne fonctionne correctement. Si vous avez des idées je suis preneur.
Merci à vous !!!!
A voir également:
- Suppression chaine de caractère
- Forcer suppression fichier - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
4 réponses
OK ................
et le pire c'est que ça fonctionne. Merci !!
Alors je dois avoir le cerveau en compote là. Je ne comprend pas pourquoi mettre "=.*" alors que la chaine de caractère est justement entre le "=" et le ".".
Suis-je fou ?
et le pire c'est que ça fonctionne. Merci !!
Alors je dois avoir le cerveau en compote là. Je ne comprend pas pourquoi mettre "=.*" alors que la chaine de caractère est justement entre le "=" et le ".".
Suis-je fou ?
Ok si j'ai bien compris le "." de ".*" n'a rien à voir avec le "." qui est au début de chaque ligne.
Je ne peux pas utiliser "*" sans mettre un "." devant ?
Pour :
maison=bateau
avion=chateau
etc ..
(sans le "." au début de ligne)
Je devrai aussi utiliser sed 's/=.*/=/' ?
Je ne peux pas utiliser "*" sans mettre un "." devant ?
Pour :
maison=bateau
avion=chateau
etc ..
(sans le "." au début de ligne)
Je devrai aussi utiliser sed 's/=.*/=/' ?
Ok si j'ai bien compris le "." de ".*" n'a rien à voir avec le "." qui est au début de chaque ligne.
Exact. Le point est en fait un caractère qui sert dans les expressions régulières et représente n'importe quel caractère.
Je ne peux pas utiliser "*" sans mettre un "." devant ?
Si mais dans ce cas là ça ne veut pas dire la même chose. Si tu écris =* sed (ou autre) recherchera qu'un caractère représentant le signe égal ou plusieurs, voir même aucun. Alors que l'expression =.* recherchera un signe égal suivit éventuellement d'un ou plusieurs caractères quelconque y compris aucun.
Exact. Le point est en fait un caractère qui sert dans les expressions régulières et représente n'importe quel caractère.
Je ne peux pas utiliser "*" sans mettre un "." devant ?
Si mais dans ce cas là ça ne veut pas dire la même chose. Si tu écris =* sed (ou autre) recherchera qu'un caractère représentant le signe égal ou plusieurs, voir même aucun. Alors que l'expression =.* recherchera un signe égal suivit éventuellement d'un ou plusieurs caractères quelconque y compris aucun.