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 :

Recherche espaces dans un nom de fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut Recherche espaces dans un nom de fichier
    Bonjour, comment puis-je rechercher des blancs dans un nom de fichier ?
    Dois-je utiliser grep ?

    merci d'avance !

  2. #2
    Expert confirmé

    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
    Par défaut
    Salut,

    Oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ grep -q " " <<<"mon nom" && echo "Chaîne invalide" || echo "Chaîne correcte"
    Chaîne invalide
     
    $ grep -q " " <<<"mon_nom" && echo "Chaîne invalide" || echo "Chaîne correcte"
    Chaîne correcte
     
    $

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    comment puis-je rechercher des blancs dans un nom de fichier ?
    pour quelle raison ?
    pour quoi faire ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    Je dois vérifier dans mon exercice si le nom de fichier fourni ne contient pas de blancs.

    Merci pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -q " " <<<"mon nom" && echo "Chaîne invalide" || echo "Chaîne correcte"
    cela fonctionne. Simplement je ne comprends pas pourquoi on a trois <<< ?

  5. #5
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par gbauby Voir le message
    J Simplement je ne comprends pas pourquoi on a trois <<< ?
    man bash => Redirection, extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Chaînes en ligne
    Une variante aux documents en ligne, le format est :
     
    <<<mot
     
    Le mot est développé et fourni à la commande sur son entrée standard.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    si on utilise BASH,
    alors pas besoin de grep :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for var in "foo bar" foo_bar; do echo -n "$var : "; [[ $var == *" "* ]] && echo ok || echo ko; done
    fin si
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    Merci pour toutes vos réponses ! C'est sympa !

  8. #8
    Membre éprouvé Avatar de Levi59
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 58
    Par défaut
    alternative avec les substitutions (ça ne change pas grand chose mais c'est toujours bon à savoir ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for var in "foo bar" foo_bar; 
    do echo -n "$var : "; 
        [[ $var == ${var/ /} ]] && echo ok || echo ko; 
    done

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    si on utilise BASH,
    alors pas besoin de grep :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for var in "foo bar" foo_bar; do echo -n "$var : "; [[ $var == *" "* ]] && echo ok || echo ko; done
    fin si
    euh... je viens de tester la ligne de commande. Elle marche aussi pour mon ksh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ . ./.kshrc_jd
    $ for var in "foo bar" foo_bar; 
    > do echo -n "$var : "; 
    >     [[ $var == ${var/ /} ]] && echo ok || echo ko; 
    > done
    foo bar : ksh: : bad substitution
     
    $ for var in "foo bar" foo_bar; do echo -n "$var : "; [[ $var == *" "* ]] && echo ok || echo ko; done
    foo bar : ok
    foo_bar : ko
     
    $ echo $KSH_VERSION
    @(#)PD KSH v5.2.14 99/07/13.2

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

Discussions similaires

  1. Espace dans un nom de fichier
    Par anisr dans le forum Général VBA
    Réponses: 2
    Dernier message: 02/05/2007, 07h45
  2. support des espaces dans les noms de fichiers
    Par menuge dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2006, 09h02
  3. suppression des espaces dans les noms de fichiers
    Par menuge dans le forum Général Python
    Réponses: 8
    Dernier message: 22/10/2006, 12h01
  4. [BATCH] Espaces dans les noms de fichiers :|
    Par andlio dans le forum Windows
    Réponses: 1
    Dernier message: 03/08/2006, 03h42
  5. Espace dans un nom de fichier
    Par pouli dans le forum Langage
    Réponses: 5
    Dernier message: 27/07/2006, 12h26

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