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 22/08/2011, 16h43   #1
Invité régulier
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 5
Points : 5
Par défaut problème avec la commande sed et find

Salut,
svp, j'arrive pas à trouver où est le problème dans la commande suivante :

Code :
find ./ -name "*.java" -exec sed -i 's/ü/u/g' {} \;
j'ai un ensemble de fichiers .java et je veux changer le caractère ü pas u (le caractère ü n'est pas en UTF-8 et peut pas être compilé par maven).

Botfounast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h07   #2
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,

Et c'est quoi exactement le problème ?
La commande ne marche pas ?

Quel système ?
Quelle version de sed ?

La commande find ./ -name "*.java" te renvoie bien la liste des fichiers souhaités ?
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h26   #3
Invité régulier
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 5
Points : 5
Citation:
Envoyé par zipe31 Voir le message
Salut,

Et c'est quoi exactement le problème ?
La commande ne marche pas ?

Quel système ?
Quelle version de sed ?

La commande find ./ -name "*.java" te renvoie bien la liste des fichiers souhaités ?
Salut
merci pour votre réponse.
wé la commande marche bien.
le problème c'est que les fichiers ne se modifient pas
ça peut être au niveau du carctère ü , non ??

j'ai :
sed version 4.2.1
Kernel 2.6.32-22-generic
Ubuntu Lucid Lynx
Botfounast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h32   #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
Ok.

Est-ce que la commande sed 's/ü/u/g' un_fichier.java marche ?

Essaie aussi avec sed 'y/ü/u/' un_fichier.java
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 17h42   #5
Invité régulier
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 5
Points : 5
Citation:
Envoyé par zipe31 Voir le message
Ok.

Est-ce que la commande sed 's/ü/u/g' un_fichier.java marche ?

Essaie aussi avec sed 'y/ü/u/' un_fichier.java
bizzard !
sed 's/ü/u/g' un_fichier.javamarche bien sur un petit fichier de quelques lignes , mais sur un grand fichier non !
j'ai attaché le fichier sur lequel la commande ne marche pas !
Fichiers attachés
Type de fichier : java PGSQLGetFeatureOfInterestDAO.java (7,2 Ko, 1 affichages)
Botfounast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 18h01   #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
Je pense que ça vient de l'encodage (ISO−8859−1) de ton fichier et de l'encodage (UTF−8) de ton système.

Si tu convertis ton fichier en UTF−8 ça marche
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2011, 19h14   #7
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
Un exemple plus parlant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
$ utrac -p PGSQLGetFeatureOfInterestDAO.java 
ISO-8859-1

$ sed -n '/ü/p' PGSQLGetFeatureOfInterestDAO.java 

$ sed -n '/ü/p' < <(iconv -f ISO−8859−1 -t UTF−8 PGSQLGetFeatureOfInterestDAO.java)
 * @author Stephan Künster

$ sed -n '/ü/p' < <(iconv -f ISO−8859−1 -t UTF−8 PGSQLGetFeatureOfInterestDAO.java) | sed 's/ü/u/'
 * @author Stephan Kunster

$
Il est fort possible que ton soucis de compilation vienne de là également...
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2011, 19h19   #8
Invité régulier
 
Inscription : mars 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 13
Points : 5
Points : 5
Citation:
Envoyé par zipe31 Voir le message
Je pense que ça vient de l'encodage (ISO−8859−1) de ton fichier et de l'encodage (UTF−8) de ton système.

Si tu convertis ton fichier en UTF−8 ça marche

oui c'était ça, j'ai changé l'encodage du fichier en UTF-8 et ça marche

maintenant je dois changer l'encoding de tous me fichiers java
j'ai fait le script suivant :
Code :
1
2
3
4
5
6
7
8
 
#!/bin/bash
 
for file in `find $1 -name "*.java"`
do	
	iconv -f ISO-8859-1 -t UTF-8 "$file" -o "${file}_back"
	mv  "${file}_back" "$file"
done
les fichiers sont bien modifiés et la compilation passe sans avoir besoin de sed ^^

Merci infiniment frère
Botfounast 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 09h46.


 
 
 
 
Partenaires

Hébergement Web