Re: Opportunité de script shell
Un gd merci nicolas
C est cela
Je me suis fait une appli java qui donne la meme chose...mais je suis decu de ne pas pouvoir combiner des criteres complexes dans find
Lol
---- Envoyé avec BlackBerry® d'Orange ----
-----Original Message-----
From: Nicolas Bercher <nbercher@yahoo.fr>
Date: Wed, 08 Feb 2012 17:02:22
To: jerome moliere<jerome.moliere@gmail.com>
Cc: debian-utilisateur<debian-user-french@lists.debian.org>
Subject: Re: Opportunité de script shell
jerome moliere a écrit :
> Bonjour à tous,
> je ne suis pas très scripts shells mais là je soupçonne avoir
> l'occasion d'en faire un , du coup je ne sais pas trop comment m'y
> prendre...
> En gros mon besoin: je dois trouver dans qq milliers de répertoires
> descendant de repos svn lesquels ne conttiennent pas un fichier donné
> (toto.txt disons) sachant qu'ils doivent contenir un tata.txt (pour en
> filtrer la majeure partie déjà)
>
> je pensais à find mais je ne vois pas comment dire d'exclure (inclure
> pas de souci) un pattern donné, donc faire la négation...
> une grosse boucle for ? ca va ramer non?
>
> bref votre avis m'intéresse...
> pas de perl je suis allergique -)
> un zsh serait il mieux armé qu'un bash pour cela ?
>
> en regardant xargs je suis tombé sur gnu parallel mais il ne semble
> être dans les repo ..c'est normal ?
> j'ai trouvé un truc appelé r-cran mais est ce la même chose ?
Voici, je pense une solution avec un find et une fonction bash:
Soit l'arborescence suivante:
$ find
.
./a
./a/b
./a/b/c
./a/b/c/tata.txt
./a/b/c/toto.txt
./a/b/tata.txt
./a/toto.txt
et le script suivant:
---------------8<---------------
#!/bin/bash
#
# name: testifandifnot
#
function dirok () {
[ -f "${1}"/tata.txt ] && [ ! -f "${1}"/toto.txt ] && echo "${1}"
}
export -f dirok
find . -type d -exec bash -c 'dirok "$1"' _ {} \;
---------------8<---------------
Voici le résultat:
$ ./testifandifnot
./a/b
$ ls -1 ./a/b
c
tata.txt
Est-ce bien cela?
Nicolas
Reply to: