Grep sur un caractere particulier

Résolu
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention   -  
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention  
 
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
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention  
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Jipicy,
Merci beaucoup pour ton explication breve et tres claire !!
Amicalement,
0