IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

problème avec la commande sed et find


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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).


  2. #2
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    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

  4. #4
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    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.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    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 Fichiers attachés

  6. #6
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    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.

  7. #7
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Un exemple plus parlant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec la commande sed
    Par JUSTIN Loïc dans le forum Linux
    Réponses: 2
    Dernier message: 05/09/2006, 10h17
  2. Problème avec la commande nice
    Par ShadoX dans le forum Administration système
    Réponses: 2
    Dernier message: 08/08/2006, 18h59
  3. Problème avec la commande revoke sous oracle
    Par merlubreizh dans le forum Oracle
    Réponses: 19
    Dernier message: 28/04/2006, 15h02
  4. [C++] Problème avec la commande "make"
    Par quantik-revolution dans le forum Systèmes de compilation
    Réponses: 6
    Dernier message: 02/04/2006, 18h17
  5. Réponses: 6
    Dernier message: 17/04/2005, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo