Swisslinux.org

− The GNU/Linux crossroads in Switzerland −

 

Language

 

The Forum

You are not logged in.

#1 15 Apr 2009 11:52:08

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

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

Offline

 

#2 15 Apr 2009 15:39:13

BOFH
Admin
From: Ecublens, VD
Registered: 03 Feb 2005
Posts: 862
Website

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

Offline

 

#3 15 Apr 2009 16:15:32

[GO]Skywalker13
Modérateur
From: Choëx (VS)
Registered: 05 Oct 2004
Posts: 890
Website

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

Offline

 

Board footer

Powered by FluxBB