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 :

Chercher une apostrophe avec la commande egrep


Sujet :

Shell et commandes GNU

  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Par défaut Chercher une apostrophe avec la commande egrep
    Bonjour,

    voila je cherche à afficher mon repertoire courant mais sans voir les fichiers avec un apostrophe 'fichier de cosmoff'

    j'utilise donc :

    mais malheureusement ca attend une entré sur le terminal. j'ai essayé

    mais ca ne marche pas non plus.

    Avez vous une idée pour resoudre le probleme ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Salut,

    le ' n'est pas un caractère comme les autre, tu dois le déspécialiser


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

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

    si c'est pour un script, attention : on n'utilise pas ls dans un script !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Par défaut
    merci pour vos réponses.

    Pourquoi on utilise pas ls dans un script ?

  5. #5
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Par défaut
    Citation Envoyé par becket Voir le message
    Salut,

    le ' n'est pas un caractère comme les autre, tu dois le déspécialiser

    ca ne marche pas. Si je fais :
    ls | grep -v \'
    ca m'affiche tout de meme:
    fichier de cosmoff

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Pourquoi on utilise pas ls dans un script ?
    Surtout, l'alternative est find pour trouver un fichier et stat si on veut juste une caractéristique d'un fichier.

    ca m'affiche tout de meme:
    fichier de cosmoff
    Ben, il n'y a pas de quote. Ça marche.

    Il faut que tu précises ton soucis, car chez moi, en console, ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls
    dossier1  fichier'monfichier'.txt  dossier2
    $ ls | egrep -v \'
    dossier1
    dossier2

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut

    le nom du fichier ne contient pas d'apostrophes,
    mais il est affiché avec des apostrophes parce qu'il contient des espaces.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ > mon\ fichier
    $ ls mon*
    'mon fichier'  "mon'fichier"
    $ printf '%s\n' mon*
    mon fichier
    mon'fichier
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre très actif
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Par défaut
    effectivement !

    j'ai fait un grep -v ' '
    et ca a marché.

    Merci pour votre aide

  9. #9
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    il est affiché avec des apostrophes parce qu'il contient des espaces.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ ls mon*
    'mon fichier'  "mon'fichier"

    Comportement non reproductible.
    Quelle version de ls ? Quelles options ?

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ ls *mon*
    mon fichier
    $ ls -Q *mon*
    "mon fichier"
    $ ls --version
    ls (GNU coreutils) 8.26
    Copyright © 2016 Free Software Foundation, Inc.
    License GPLv3+*: GNU GPL version*3 ou ultérieure
    <http://gnu.org/licenses/gpl.html>
    C'est logiciel libre, vous êtes libre de le modifier et de le redistribuer.
    Ce logiciel n'est accompagné d'ABSOLUMENT AUCUNE GARANTIE, dans les limites
    autorisées par la loi applicable.
    Écrit par Richard M. Stallman et David MacKenzie.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ ls --version
    ls (GNU coreutils) 8.31
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ alias ls
    alias ls='$(which ls) --color=auto --group-directories-first -X'
    et si je n'utilise pas l'alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ \ls mon*
    'mon fichier'  "mon'fichier"
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $ for s in literal shell shell-always shell-escape shell-escape-always c c-maybe escape locale clocale; do echo "Style: $s ----------------------------------------------------------------------------";ls --quoting-style=$s *arbre*;done
    Style: literal ----------------------------------------------------------------------------
     l'arbre a Cadabra  l arbre a Cadabra  l'arbre a Cadabra  l\'arbre a Cadabra
    Style: shell ----------------------------------------------------------------------------
    " l'arbre a Cadabra"  'l arbre a Cadabra'  "l'arbre a Cadabra"  'l\'\''arbre a Cadabra'
    Style: shell-always ----------------------------------------------------------------------------
    " l'arbre a Cadabra"  'l arbre a Cadabra'  "l'arbre a Cadabra"  'l\'\''arbre a Cadabra'
    Style: shell-escape ----------------------------------------------------------------------------
    " l'arbre a Cadabra"  'l arbre a Cadabra'  "l'arbre a Cadabra"  'l\'\''arbre a Cadabra'
    Style: shell-escape-always ----------------------------------------------------------------------------
    " l'arbre a Cadabra"  'l arbre a Cadabra'  "l'arbre a Cadabra"  'l\'\''arbre a Cadabra'
    Style: c ----------------------------------------------------------------------------
    " l'arbre a Cadabra"  "l arbre a Cadabra"  "l'arbre a Cadabra"  "l\\'arbre a Cadabra"
    Style: c-maybe ----------------------------------------------------------------------------
     l'arbre a Cadabra  l arbre a Cadabra  l'arbre a Cadabra  l\'arbre a Cadabra
    Style: escape ----------------------------------------------------------------------------
    \ l'arbre\ a\ Cadabra  l\ arbre\ a\ Cadabra  l'arbre\ a\ Cadabra  l\\'arbre\ a\ Cadabra
    Style: locale ----------------------------------------------------------------------------
    «* l'arbre a Cadabra*»  «*l arbre a Cadabra*»  «*l'arbre a Cadabra*»  «*l\\'arbre a Cadabra*»
    Style: clocale ----------------------------------------------------------------------------
    «* l'arbre a Cadabra*»  «*l arbre a Cadabra*»  «*l'arbre a Cadabra*»  «*l\\'arbre a Cadabra*»
    Mouai. Pas très claire cette histoire de quote qui remplace un espace.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 665
    Par défaut
    le quote ne remplace pas l'espace, il "protège" l'espace.
    il faut bien le protéger d'une manière ou d'une autre, au moins lors de l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ > mon fichier
    bash: fichier : commande introuvable
    normal !
    bash a créé le fichier mon, et ne connaît pas ce qu'il prend pour la commande qui suit (fichier)
    donc, il faut protéger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ > mon\ fichier #ou
    $ > 'mon fichier' #ou
    $ > "mon fichier"
    ce qui est plus bizarre, c'est d'afficher les protections pour un simple "listage"...
    en vue d'une réutilisation de la sortie, je suppose.
    printf peut le faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ help printf
    ...
    %q        protège les arguments avec des guillemets de façon qu'ils puissent être réutilisés
          comme entrée du shell.
    comme si bash avait besoin de ça.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    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 103
    Par défaut
    Citation Envoyé par becket Voir le message
    le ' n'est pas un caractère comme les autre, tu dois le déspécialiser

    On peut aussi l'encapsuler avec des guillemets:


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

Discussions similaires

  1. [MooTools] Aller chercher une valeur avec mootools
    Par zenka dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 30/07/2010, 10h57
  2. Réponses: 3
    Dernier message: 20/10/2009, 09h02
  3. Ecraser les données d'une table avec la commande bcp
    Par créolie dans le forum Outils
    Réponses: 2
    Dernier message: 13/08/2008, 15h06
  4. Chercher une donnée avec seulement une partie de l'élément
    Par Nadiya dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/05/2008, 18h25
  5. Chercher une chaine avec un anti-slash et apostrophe
    Par mamiberkof dans le forum Requêtes
    Réponses: 7
    Dernier message: 01/02/2008, 15h09

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