[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: