Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2007, 10h25   #1
Membre habitué
 
Avatar de arnaud036
 
Inscription : juillet 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 199
Points : 120
Points : 120
Par défaut Suppression espace et caractère spéciaux dans une chaine de caractère

salut,

Je possede un fichier .txt qui comporte de nombreux espace et caractère spéciaux.

Enfaite je voudrai via une commande shell supprimer les caractères spéciaux (| / = ^ ...) et remplacer les suites d'espace par un seul espace.

J'ai commencer a chercher en utilisant les commandes sed et strings mais je n'y arrive pas.

Un coup de main serai le bienvenue
arnaud036 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 10h26   #2
Membre habitué
 
Avatar de arnaud036
 
Inscription : juillet 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 199
Points : 120
Points : 120
J'ai reussi a trouver pour suprimer les espace est les remplacer pas un espace:
Code :
sed 's/  /^?/g' fichier.txt
Maintenant je chercher comment supprimer les caratères spéciaux !!

Si vous pouriez me donner un coup de main.
arnaud036 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 13h28   #3
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 903
Points : 1 903
tr peut être une alternative plus facile à mettre en oeuvre. Mais tu risques d'avoir besoin de plusieurs passes.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 16h26   #4
Membre habitué
 
Avatar de arnaud036
 
Inscription : juillet 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 199
Points : 120
Points : 120
C'est ce que j'ai utilisé ma ligne commande est:
Code :
sed 's/  /^?/g' fichier.txt | tr '|^\'/\\$=<>.;:_()[]{}!*\n\t\b' '^?'
si quelqu'un a plus simple je suis preneur !!
arnaud036 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 19h49   #5
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 945
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 945
Points : 1 083
Points : 1 083
Pourquoi "^?" ?

Code :
< fichier.txt tr -s ' ' | tr -d '|/=<>...'
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 10h51   #6
Membre habitué
 
Avatar de arnaud036
 
Inscription : juillet 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 199
Points : 120
Points : 120
Citation:
Pourquoi "^?" ?
^? corespond au code renvoyer par linux pour faire un backspace !

j'aurai aussi pus remplacer ^? par rien
arnaud036 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h52.


 
 
 
 
Partenaires

Hébergement Web