Grep sur un caractere particulier

Résolu
econdami Messages postés 253 Statut Membre -  
econdami Messages postés 253 Statut Membre -
Bonjour,
je voudrais copier un dossier (toto) chez tous les utilisateurs d'une station
Le probleme c'est que dans le dossier /home/people de ces utilsateurs il existe des dossiers ou je ne voudrais pas copier (prenons par exemple un dossier - ou un lien symbolique- qui s'appellerait f). J'ai imagine utiliser :
for f in `ls /home/people|grep -v f`; do cp -r /toto /home/people/$f; chown -R $f /home/people/$f; done
mais dans ce cas tous les dossiers utilisateur contenants la lettre f sont egalement elimines ...
avez vous un moyen pour preciser que c'est seulement "f", ou toute autre suite de caractere (j'ai essaye "f" et 'f' et `f` mais cela ne marche pas 1)
Merci d'avance pour toute proposition
Configuration: Linux Red Hat
Firefox 1.5.0.12

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Essaie comme ça :

    for f in $(ls /home/people | egrep -v '\bf\b'); do cp -r /toto /home/people/$f; chown -R $f /home/people/$f; done

    ;-))
    2
  2. econdami Messages postés 253 Statut Membre
     
    Merci jipicy, ca marche !
    Maintenant pour ma culture perso, pourquoi as tu preconise un egrep plutot qu'un grep et si je comprend bien le deuxieme \b c'est pour mettre un espace vide mais le premier \bf peux tu me donner un petit mot la dessus.
    0
  3. econdami Messages postés 253 Statut Membre
     
    peut etre qu'en mettant /bf/b tu precises espace vide puis f puis espace vide ?
    En revanche je ne vois pas pour egrep plutot que grep ?
    Bon de toute facon tu m'as bien aide et c'est bien l'essentiel !
    merci encore
    amicalement !
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-

    C'est vrai que "grep" fait autant l'affaire que "egrep", disons que c'est juste une question d'habitude (bonne ou mauvaise, je n'en sais rien), mais j'ai tendance à utiliser egrep (regex étendue) plutôt que grep (regex basique) dès que j'ai des expressions régulières à mettre en correspondance...

    Quant au "\b" en début, je te laisse juge :

    [tmpfs]$ ls -1
    affaire
    effet
    f
    ff
    fff
    fou
    taf
    teuf
    ufo
    
    [tmpfs]$ ls * | grep -v '\bf\b'
    affaire
    effet
    ff
    fff
    fou
    taf
    teuf
    ufo
    
    [tmpfs]$ ls * | grep -v 'f\b'
    affaire
    effet
    fou
    ufo
    [tmpfs]$ 

    ;-))
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. econdami Messages postés 253 Statut Membre
     
    Bonjour Jipicy,
    Merci beaucoup pour ton explication breve et tres claire !!
    Amicalement,
    0