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 25/01/2011, 14h51   #1
Membre du Club
 
Inscription : octobre 2006
Messages : 105
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 105
Points : 48
Points : 48
Par défaut Remplacement de caractères accentués

Bonjour,
Je cherche à remplacer tous les caractères accentués se trouvant dans des fichier java par des espaces, j'ai développé ce bout de code, mais apparemment ça ne marche pas:

Code :
1
2
3
4
5
6
7
 
for file in $(find monRepertoire f -name "*.java") 
do
    x=$(egrep -o "[àáâãäåæÀÁÂÄÆÅÃçÇÈÉÊËèéêëÙÚÛÜùúûüÌÍÎÏìíîïÒÓÔÕÖòóôõöÑñÝý]" $file)
    echo $x
    sed -e "s/$x//g" $file
done
Pouvez-vous me donner un coup de main.
Merci
framus.class est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h07   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 069
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 069
Points : 4 145
Points : 4 145
mais, ça ne marche pas comment ?
tu obtiens des messages d'erreurs ?
ça fait quoi, et tu voulais quoi ?
quel shell ?
...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h29   #3
Membre du Club
 
Inscription : octobre 2006
Messages : 105
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 105
Points : 48
Points : 48
J'ai des classes Java dans lesquels les développeurs ont laissé des commentaire en français, ces derniers posent problème à cause des caractère accentués, je voulais développer un script qui cherche dans toutes les classes java les caractères accentué et les remplace par une chaine vide.
exemple : démarrage ---> dmarrage

Merci
framus.class est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 16h19   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Il y a des sous-répertoire dans ton "monRepertoire" ?

Si non, un simple :

Code :
sed -s -i 's/[àáâãäåæÀÁÂÄÆÅÃçÇÈÉÊËèéêëÙÚÛÜùúûüÌÍÎÏìíîïÒÓÔÕÖòóôõöÑñÝý]//g' *.java
Devrait faire l'affaire...

A tester sans le paramètre "-i" d'abord
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 16h35   #5
Membre du Club
 
Inscription : octobre 2006
Messages : 105
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2006
Messages : 105
Points : 48
Points : 48
Merci pour ta réponse zipe31,
Oui il y a des sous répertoires en modifiant le script comme suit:

Code :
1
2
3
4
5
 
for file in $(find monRepertoire -type f -name "*.java") 
do
	sed -s -i 's/[àáâãäåæÀÁÂÄÆÅÃçÇÈÉÊËèéêëÙÚÛÜùúûüÌÍÎÏìíîïÒÓÔÕÖòóôõöÑñÝý]//g' $file
done
il m'affiche des erreurs :
sed: couldn't edit monRepertoire/rep1/rep2/rep3: not a regular file

et :
sed: can't read monRepertoire/rep1/rep2/rep3/Constant.java: No such file or directory

Merci
framus.class est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h01   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Et comme ça :

Code :
find test_m_25.4_VSC_25.4 -type f -name "*.java" -exec sed -i.bak 's/[àáâãäåæÀÁÂÄÆÅÃçÇÈÉÊËèéêëÙÚÛÜùúûüÌÍÎÏìíîïÒÓÔÕÖòóôõöÑñÝý]//g' {} \;
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h03.


 
 
 
 
Partenaires

Hébergement Web