Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 15 Apr 2009 11:52:08

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Copier des fichiers avec une expression régulière

Hello,

Je cherche à copier des fichiers avec une condition assez simple.. par exemple:

libfoobar.so.0.0.1T
libfoobar.so.0.0.1
libfoobar.so.0
libfoobar.so

Je veux tous les garder sauf celui qui se termine par T.
Mais les expressions régulières avec la commande cp sont a priori très limitées.. par exemple quelque chose comme cela n'est pas faisable:

Code:

cp foobar.so*[^T]$ $TRUC/lib

mais comme cela ça marche (par exemple, pour copier des fichiers nommés foobar.so.0, foobar.so.1):

Code:

cp foobar.so*.[0-9] $TRUC/lib

J'aimerais éviter de passer par la commande find. Je dois modifier beaucoup de scripts et j'aimerais limiter au maximum les modifications.


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#2 15 Apr 2009 15:39:13

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: Copier des fichiers avec une expression régulière

Hello,

  Quel shell veux-tu utiliser ?

  Avec bash, tu devrais pouvoir faire qqch comme:

Code:

shopt -s extglob
#...
cp foobar.so*([.0-9]) $TRUC/lib

Hors ligne

 

#3 15 Apr 2009 16:15:32

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Copier des fichiers avec une expression régulière

Ca a l'air de bien marcher.. Merci!

Le shell c'est difficile a dire.. ça doit être suffisamment portable.. certains sont sous BSD (aucune idée quel shell).. la plupart avec dash, et d'autres sous autre chose.. bref..

EDIT: bon, avec /bin/sh ça ne passe pas.. sad sans les parenthèses c'est peut être okay..


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

Pied de page des forums

Powered by FluxBB